Reaction组件在页面导航时未调用WillUnmount

hivapdat  于 2022-10-15  发布在  React
关注(0)|答案(1)|浏览(196)

我有一个组件:

export class MyComponent extends React.Component {
    componentWillUnmount() {
        console.log("HERE")
    }

    render() {<div>Hello world</div>}
}

当我执行任何使我离开页面的操作(例如,单击超链接、后退按钮等)时,不会打印console.log语句。有谁能帮帮我吗?
顶级父组件及其子组件的任何componentWillUnmount都不会被调用。
围绕这一点的许多现有问题都是指对本土问题的React。我正在使用Reaction 16,而不是Reaction Native。除此之外,我对页面导航没有任何问题。当我的组件卸载而生命周期方法甚至没有被调用时,我需要调用特定的第三方函数。

wz1wpwve

wz1wpwve1#

假设您谈论的是常规浏览器页面导航(与react router类型导航相反),当您从页面导航离开时,组件不会在Reaction生命周期意义上卸载。当整个页面被破坏时,它仍然被挂载。
如果您需要在完全离开应用程序页面之前执行某些操作,您可以尝试侦听pagehide event,但请注意:
与UnLoad和BepreUnLoad事件一样,浏览器不会可靠地触发此事件,尤其是在移动设备上。

相关问题