如何在 React 16 中找到导致更新的触发器?
Posted
技术标签:
【中文标题】如何在 React 16 中找到导致更新的触发器?【英文标题】:How to find the trigger that caused the update in React 16? 【发布时间】:2020-03-15 14:36:30 【问题描述】:我最近升级到了光纤。 15、当一个组件更新时,更新堆栈跟踪是这样的
component1Update
...react framework stuff
component2Update
...react framework stuff
component3Update
setState
onClick() <-- Aha!
如何在 Fiber (React 16) 中找到更新的来源?
【问题讨论】:
首先如何获得堆栈跟踪? @hackape 啊忘了提,来自渲染方法中的调试器语句。 你应该明白为什么github.com/welldone-software/why-did-you-render 了? 可能是***.com/questions/41004631/…的副本 【参考方案1】:我建议在 react-profiler 中查找不断更新的节点,然后用 https://github.com/welldone-software/why-did-you-render 装饰该组件,这应该会告诉你它为什么更新。
【讨论】:
以上是关于如何在 React 16 中找到导致更新的触发器?的主要内容,如果未能解决你的问题,请参考以下文章
React生命周期, setState、props改变触发的钩子函数
如何在 React Router v5 中更新 URL 并替换历史状态而不重新渲染整个应用程序?