天天看点

6.25 react setState异步的坑setState向事件回调函数传参

react

  • setState
  • 向事件回调函数传参

setState

先来看一段代码

state = {
  name:'ww'
}
this.setState({
 name: 'zs'
})
console.log(this.state.name); //  ww
           

看完以上代码,相信你已经明白,setState相当于是异步操作

,打印name的时候,状态还未更新。

怎么解决?

state = {
  name:'ww'
}
this.setState({
 name: 'zs'
},() => {
//当state的状态更新完成,且render()之后调用
console.log(this.state.name); //  zs
})
           

setState的第二个参数是一个回调函数,当state的状态更新完成,且render()之后调用,可以解决状态setState的异步问题

向事件回调函数传参

react中

这里必须是一个函数,如果直接

onClick={this.getList(id)}
           

还未点击就会执行该函数

继续阅读