我有一个组件:
export class MyComponent extends React.Component {
componentWillUnmount() {
console.log("HERE")
}
render() {<div>Hello world</div>}
}
当我执行任何使我离开页面的操作(例如,单击超链接、后退按钮等)时,不会打印console.log
语句。有谁能帮帮我吗?
顶级父组件及其子组件的任何componentWillUnmount
都不会被调用。
围绕这一点的许多现有问题都是指对本土问题的React。我正在使用Reaction 16,而不是Reaction Native。除此之外,我对页面导航没有任何问题。当我的组件卸载而生命周期方法甚至没有被调用时,我需要调用特定的第三方函数。
1条答案
按热度按时间wz1wpwve1#
假设您谈论的是常规浏览器页面导航(与react router类型导航相反),当您从页面导航离开时,组件不会在Reaction生命周期意义上卸载。当整个页面被破坏时,它仍然被挂载。
如果您需要在完全离开应用程序页面之前执行某些操作,您可以尝试侦听pagehide event,但请注意:
与UnLoad和BepreUnLoad事件一样,浏览器不会可靠地触发此事件,尤其是在移动设备上。