1

为了调试我的反应应用程序,我想知道哪个道具被改变了。当应用程序运行时,它会执行componentWillReceiveProps无限次。我不知道收到了哪个道具。有没有办法通过比较this.propsnextProps/或任何其他方式来识别修改后的道具

4

2 回答 2

1

你可以使用这个包:maicki/why-did-you-update(截至写作时,Github 上大约有 3k 颗星)。

Why-did-you-update 是猴子修补 React 并在可能发生不必要的重新渲染时在控制台中通知您的功能。

于 2018-12-20T10:21:54.173 回答
0

实际上我昨天创建了一个工具来帮助解决这个问题https://www.npmjs.com/package/react-use-compare-debugger

这个想法是,通过包含一个简单的useCompareDebugger("myComponent", props),它将自动记录每个渲染道具的更改。在这里,关键是它详细说明了值是否在引用上相等,这就是 React 如何进行浅层比较以确定何时应该重新渲染。

在此处输入图像描述

于 2020-12-16T08:50:21.220 回答