react 中 setState的两种写法、修改部分属性

react 想要更新视图只能用 setState( ) 方法 

关于 setState() 这里有两点需要知道

1. 不要直接更新状态, 而是使用 setState()

2. 状态更新是异步的,你如果依靠它们的值来计算下一个状态不可以直接使用。

1、两种调用方式

第一种 : 直接 改变 

this.setState({
      msg: "我被改变了"
});

第二种 :通过 setState()传入一个函数,这种用法 可以借助于 原有的state里的值

this.setState(state => {
  return {
    msg: "hello"
  };
});

2、修改状态后依据状态做些操作

第一种:回调函数

.setState({
      active:true
    },()=>{
      console.log(this.state.active,'2')
})
console.log(
  change = async ()=>{
    await 
    })
    console.log()
  }

3、修改某个对象的部分属性,使用Object.assign()

  change = (pagination,filters,sorter,extra)=>{
    this.setState((state)=>{
       {
        params:Object.assign(state.params,{
          pageSize: pagination.pageSize,pageNum: pagination.current
        })
      }
    })
  }

 

相关文章

react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接...
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc ...