请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于多次调用setState的更新问题

之前在哪看过关于setState的更新逻辑,大概内容就是当前state的setState重复多次执行的时候,会对比该state的更新数据从而将多次的state整合成单次的state,相同的情况只执行一次,不同的情况则以最新的一次setState为主
而对上一次preState进行更新的情况,因为每一次更新的state对象都不一样,所以可以多次执行
不知道上面的描述是否正确

下面的代码则只会执行this.state.count + 3

 this.setState({ count: this.state.count + 1 }, () => {
   console.log(this.state.count)
 })
 this.setState({ count: this.state.count + 2 }, () => {
   console.log(this.state.count)
 })
 this.setState({ count: this.state.count + 3 }, () => {
   console.log(this.state.count)
 })

正在回答

1回答

是的,react的setState比较奇怪,正如你所说,他会按照一定的算法把多次setState整合为一次操作,从而提高ui的渲染效率。这种操作会给人一种setState是异步操作的错觉,但更准确来说setState其实是一种伪异步操作。
0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信