调试React setState错误

时间:2017-08-27 21:30:06

标签: reactjs debugging setstate

我显然没有在我的任何组件构造函数中设置状态,但我得到了

Warning: setState(...): Can only update a mounted or mounting component

错误。有没有什么好方法可以调试它并找出究竟发生了什么?我怀疑它发生在路由器重定向的某个地方但是我不确定。

这里说重定向

<Route exact path='/login' render={() => authStore.isLoggedIn ? <Redirect to='/protected'/> : <Login/>}/>

如何调试此错误的想法?

1 个答案:

答案 0 :(得分:1)

好的,我通过检查/扩展控制台的堆栈跟踪找到了问题,将其缩小到特定组件,此时罪魁祸首更加明显。

问题是我在一个承诺中有一个setState在我的重定向发生之后(如我原来的问题所示)。在我翻转<Login/>状态切换之前,fetching: true / false组件正在从DOM中删除。

我觉得有更好的方法来跟踪setStates / re-renders进行调试。如果有人建议使用模式/开发工具(我知道react-dev-tools)有助于解决这些问题,请告诉我们!