react, setState的两种写法。

*

//this.setState 是属于异步操作。 不会第一时间拿到修改后的值,
//* 使用回调函数,这样能拿到值
//* 属于异步的  能把多个 setState  合并成一个。 并且render只会渲染被修改后的dom  使用diff算法

首先我们定义一个state

state = { 
    username: '小白'  
}

 例: 我定义了一个事件, 取名为 updateUsername

第一种: 对象形式

this.setState({
     username: '小黑'
}, () => {  
     console.log( this.state.username )
})

 第二种写法:

this.setState( () => { 
      return {
        username: '鸟蛋'
    }
})

 第二种里面值也可以拼接的用

this.setState( old => { //old上一次的state  这种可以把第一种 回调分离出来。
      console.log(old)
      return{
        username: `${old.username}XXX`
      }
})

猜你喜欢

转载自www.cnblogs.com/yetiezhu/p/12720574.html