我显然没有在我的任何组件构造函数中设置状态,但我得到了
Warning: setState(...): Can only update a mounted or mounting component
错误。有没有什么好方法可以调试它并找出究竟发生了什么?我怀疑它发生在路由器重定向的某个地方但是我不确定。
这里说重定向
<Route exact path='/login' render={() => authStore.isLoggedIn ? <Redirect to='/protected'/> : <Login/>}/>
如何调试此错误的想法?
答案 0 :(得分:1)
好的,我通过检查/扩展控制台的堆栈跟踪找到了问题,将其缩小到特定组件,此时罪魁祸首更加明显。
问题是我在一个承诺中有一个setState在我的重定向发生之后(如我原来的问题所示)。在我翻转<Login/>
状态切换之前,fetching: true / false
组件正在从DOM中删除。
我觉得有更好的方法来跟踪setStates / re-renders进行调试。如果有人建议使用模式/开发工具(我知道react-dev-tools)有助于解决这些问题,请告诉我们!