可以在卸载状态下使用React组件吗?

时间:2017-02-17 23:59:23

标签: javascript reactjs react-router-component

我有一个React组件,它创建一个事件监听器,并显示一个链接列表。用户单击链接后,将调用componentWillUnmount方法并显示新页面。我的组件在卸载后继续运行并处理事件。这是按预期工作的,因为我正在跟踪我的控件是否已安装,并且调用基于已安装/未安装状态通过props传入的函数。

一切似乎都运行良好,但我已经阅读了React文档,"在卸载组件并销毁"之前立即调用componentWillUnmount()。 。我也知道isMounted是一个反模式所以我正在跟踪控件是否自己安装。我的组件被销毁或者我的事件监听器是否会被销毁只是时间问题?

2 个答案:

答案 0 :(得分:2)

我认为您的问题的解决方案是使用像Redux这样的库。它将为您处理您的状态和操作,因此您不必担心处于卸载状态的组件。

话虽这么说,这实际上是React中已知的内存泄漏问题。您可以看到问题here

答案 1 :(得分:0)

componentWillUnmount()设计用于处理组件的清理。这包括清理事件侦听器和计时器等。我相信正确的方法是删除此函数中的事件侦听器。