React 中 setState(prevState=>{ ... })

常规方式

连续执行2次setState,如下方式,往往只有一次效果,即后者的效果

  this.setState({
    count: this.state.count + 1,
  })
  this.setState({
    count: this.state.count + 2,
  })

相当于

this.setState(Object.assign({},{
    count: this.state.count + 1,
  },{
    count: this.state.count + 2,
  }))

prevState

this.setState(prevState=>({
    count: prevState.count + 1,
}))

this.setState(prevState=>({
    count: prevState.count + 2,
}))

如此写法,在react中,会形成一个队列,对所有setState依次调用

猜你喜欢

转载自blog.csdn.net/hzxOnlineOk/article/details/108455934