Skip to content

在 shouldComponentUpdate 或 componentWillUpdate 中使用 setState 会发生什么?

Posted on:2024年8月10日 at 17:05

当调用 setState 的时候,实际上会将新的 state 合并到状态更新队列中,并对 partialState 以及 _pendingStateQueue 更新队列进行合并操作。最终通过 enqueueUpdate 执行 state 更新。

如果在 shouldComponentUpdate 或 componentWillUpdate 中使用 setState,会使得 state 队列(_pendingStateQueue)不为 null,从而调用 updateComponent 方法,updateComponent 中会继续调用 shouldComponentUpdate 和 componentWillUpdate,因此造成死循环。

原文转自:https://fe.ecool.fun/topic/e203426f-23a1-4872-8ff7-1d0d27e57a81