如何调试ReactJS';s设置状态
我目前正在处理一个中等大小的reactJS应用程序,单击组件上的按钮后会收到以下错误消息:如何调试ReactJS';s设置状态,reactjs,Reactjs,我目前正在处理一个中等大小的reactJS应用程序,单击组件上的按钮后会收到以下错误消息: Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. 我怎样才能更容易地调试它?为什么reactJS不给我一个违反此规则的特定组件名称 您将如何
Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op.
我怎样才能更容易地调试它?为什么reactJS不给我一个违反此规则的特定组件名称
您将如何执行此操作?您可以覆盖
控制台。当提供的消息与特定模式匹配时,发出警告,使其抛出而不是记录。在您的情况下,您应该:
var warn=console.warn;
console.warn=功能(警告){
如果(/(设置状态)/.测试(警告)){
抛出新错误(警告);
}
warn.apply(控制台、参数);
};
然后,错误的堆栈跟踪将指向导致警告的行。实际上,解决此问题的最佳方法是在本地更改一些react代码
特别指出如何修改src/renderers/shared/reconciler/ReactUpdateQueue.js
以获取非法设置状态的组件
由于此拉取请求已经合并到repo中,因此不久之后它将集成到react的npm版本中。我只想寻找使用Ajax或计时器的任何东西。。。可能在componentDidMount
中,因为内部回调可以在组件已经卸载后执行。这实际上非常聪明,但由于某些原因对meAh不起作用。好吧,我想原因是-记录的消息说“警告:…”,但它实际上是一个错误日志。因此,我不得不将代码片段中的“警告”替换为“错误”。我希望我能给你买咖啡:)