Yor*_*rmi 6 reactjs react-router
警告:
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. Please check the code for the _class component.
Run Code Online (Sandbox Code Playgroud)
知道它可以来自哪里.陷阱还是那样的事情?
我已经查看了代码中的所有setState并将其替换为确保.无法找到它的来源......
我到目前为止的观察:
所以!我明白错误是什么,但这次警告是关于一个_class component
所以我迷路了......我刚刚升级到react-router
v4,它需要进行大量更改,因此很难本地化警告的来源.
以前有人遇到过类似的问题吗?
编辑:我发现setState
这导致了问题.它在react-router-server
.我会调查一下,看看能不能解决它!
感谢@zerkms,因为终端中没有跟踪,所以想要使用调试器来获取行号.
我使用了v8实验检查员(/sf/answers/2793081861/).工作得很好:)
Pra*_*avi 13
这是常见的,因为API调用等异步活动.例如,当您尝试在从服务器接收数据后设置状态并且未安装接收该状态的相应页面时,会发生这种情况.
为避免这种情况,请在设置该组件中的状态之前检查组件是否已安装.使用标志来检查,说this.mounted = true
在componentDidMount
和更改标志的假componentWillUnmount
.this.mounted
在整个组件中使用以检查组件是否已安装.这将修复警告.
希望这可以帮助!
Dav*_*lsh 11
这当你调用通常发生的this.setState
一个内setTimeout
或setInterval
或其他一些延迟功能.
如果你正在使用setTimeout
/ setInterval
确保你打电话clearTimeout
/ clearInterval
进来componentWillUnmount
.
归档时间: |
|
查看次数: |
9696 次 |
最近记录: |