首页 > 解决方案 > 究竟是什么时候在未安装的组件上发生 React 状态更新警告?

问题描述

究竟什么时候我们应该检查一个组件是否已安装???我有很多setState电话,我遇到了我在标题warning中写的一些时间。

现在我可以通过声明 a variableandinitializingtrue incomponentDidMount并重新分配false on来避免这种情况componentWillUnmount,然后检查何时setState被调用。

但我的确切问题是,是否有必要在每次setState通话时检查,或者此警告发生在特定情况下?我应该在那个时候检查变量吗?

这个警告还会影响性能吗?

标签: javascriptreactjsreact-nativereact-hooks

解决方案


当您异步调用 setState 时,可能会发生这种情况,例如window.fetch().then(...setState...),等待或在回调中。

您可以使用this.isMounted()而不是自定义变量,但另请参阅https://reactjs.org/blog/2015/12/16/ismounted-antipattern.html以获得更好的解决方案。


推荐阅读