请稍等 ...
×

采纳答案成功!

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

processUpdateQueue 在异步 setState 中的现象

老师好,关于 processUpdateQueue 这个方法我有个问题:
如果在 React 事件的处理函数中多次 setState,会生成多个 update 并添加到 updateQueue? 并且通过 isBatchingUpdates 来将多次 setState 延迟执行,最后当真正更新时会走到 processUpdateQueue,这里 while 循环 updateQueue,每次 update 的 resultState 都成了计算下一个 update 的 baseState,但为什么 https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/18 这道题里是合并了多次 setState,仅仅以初始 baseState 为基础,做了一次 + 1?

正在回答 回答被采纳积分+3

1回答

提问者 Dalei666 2019-06-21 00:57:27

我知道了,resultState 并不是 this.state,所以批量 setState 时候多次拿到的是 this.state,是没有被前面影响的,前面影响的是 resultState,如果其他 state 被改变了后面就会被影响,同名属性会被覆盖。

0 回复 有任何疑惑可以回复我~
  • Jokcy #1
    processUpdateQueue的时候是按照先后顺序来的,所以如果多个update更新同一个state,那么最终有效的是最后一个
    回复 有任何疑惑可以回复我~ 2019-06-21 18:29:20
  • 提问者 Dalei666 回复 Jokcy #2
      明白了,谢谢
    回复 有任何疑惑可以回复我~ 2019-06-22 23:59:32

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信