processUpdateQueue 在异步 setState 中的现象

来源:5-5 updateClassComponent

Dalei666

2019-06-21

老师好,关于 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?

写回答

1回答

Dalei666

提问者

2019-06-21

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

0
2
Dalei666
回复
Jokcy
  明白了,谢谢
2019-06-22
共2条回复

React源码深度解析 高级前端工程师必备技能

掌握React源码,让你的开发水平没有上限,更不惧前端未来的到来

1749 学习 · 336 问题

查看课程