应该在传入组件的componentDidMount之前调用componentWillUnmount,不是吗?

时间:2019-06-13 20:00:37

标签: javascript reactjs

我在React中有一个基类,该基类正被子类扩展:

export default class extends Base {
 ... 
}

现在,为了有效地订阅事件并在组件被卸载时自动退订,我在基类(它是父类)中使用了名为subscribe和unsubscribe的方法来处理此问题。 / p>

现在一切正常,直到我从同一页面移到同一页面,但道具中的ID不同。

在这种情况下,发生的事情是在离开组件功能之前执行了已执行安装功能的联接组件。例如,请参见以下控制台:

enter image description here

第一个安装到控制台是加载的第一页。 然后,第二个安装到是要加入的新组件。 最后的卸载的正在从要离开的第一个组件执行。

在这种情况下,由于OLD组件的卸载,React订阅了加入组件中的事件,然后仅取消订阅它们。

我需要确保旧组件正在清除其所有订阅,然后启动新组件。或者-如果新组件是相同组件但具有不同的道具,则需要禁用取消订阅事件。

如何解决此问题?

0 个答案:

没有答案