繁体   English   中英

可以在未安装状态下使用React组件吗?

[英]Can a React component be used in the unmounted state?

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

一切似乎都工作正常,但是我已经在React文档中读到,“ componentWillUnmount()在组件卸载和销毁之前立即被调用”。 我也知道isMounted是一种反模式,因此我一直在跟踪控件是否是我自己安装的。 是销毁组件只是时间问题,还是事件监听器阻止销毁它?

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

话虽如此,这实际上是React中一个已知的内存泄漏问题。 您可以在这里看到问题。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM