调试反应。确定更改了哪个道具

Debug React. Identify Which prop was changed

为了调试我的 React 应用程序,我想知道更改了哪个道具。当应用程序运行时,它会无限次执行 componentWillReceiveProps 次。我不知道收到了哪个道具。有什么方法可以通过比较 this.propsnextProps 或任何其他方式

来识别修改后的道具

您可以使用这个包:maicki/why-did-you-update(在撰写本文时 Github 上大约有 3k 星)。

Why-did-you-update is a function that monkey patches React and notifies you in the console when potentially unnecessary re-renders occur.

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

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