React 16:componentDidUpdate 警告:安排了级联更新
Posted
技术标签:
【中文标题】React 16:componentDidUpdate 警告:安排了级联更新【英文标题】:React 16 : componentDidUpdate Warning: Scheduled a cascading update 【发布时间】:2018-05-15 22:05:24 【问题描述】:我通过关注 this article by Ben Schwarz 使用 react redux 分析了我的应用程序的性能。
在用户计时部分,我收到以下警告(带有禁止进入标志):
有两条消息:
(Committing Changes) Warning: Lifecycle hook scheduled a cascading update
Connect(MyComponent).componentDidUpdate Warning: Scheduled a cascading update
我进行了一些搜索,但没有发现任何特别之处。好像和react-redux的connect HOC的componentDidUpdate
函数有关。
这些消息是什么意思?
【问题讨论】:
【参考方案1】:这些消息意味着 componentDidUpdate 正在获取更改的 props 或设置状态,因此更新将级联(发生在最后一次更新之后),因为它是更新期间调用的最后一个生命周期方法。基本上 React 已经确定需要进行另一个更新,并且它甚至还没有完成当前的更新。我不确定这是 react-redux 还是您的应用程序的问题。
【讨论】:
...此时会发生什么?它会继续之前的更新,还是从新的更新开始,或者将两者合并?这个案子真的有问题吗?? 下一次更新发生在当前更新之后,我实际上不确定 Fiber 是如何处理这个问题的,所以在下一次更新之前可能会发生其他事情,但更新将是下一个渲染周期的一部分. 但这确实意味着触发的更新在当前渲染周期内不会处于活动状态,因此您可能会尝试引用错误数据并且不会同步。以上是关于React 16:componentDidUpdate 警告:安排了级联更新的主要内容,如果未能解决你的问题,请参考以下文章