用户导航到新屏幕时未卸载组件

时间:2020-06-26 12:42:40

标签: react-native expo

这里是React Native的新功能。

我有一个包含以下代码的简单组件/屏幕:

useEffect(() => {
        console.log("OPENING LOGIN");
        AppState.addEventListener("change", testFunction);
        return (() => {
            console.log("Removing HELLO LISTENER");
            AppState.removeEventListener("change", testFunction);
        });
    }, []);

    const testFunction = () => {
        console.log("APPSTATE CHANGE FUNCTION RUNNING");
    };

    const changeScreen = () => {
        return props.navigation.navigate("MainView", {});
    };

在安装组件时,这将启动eventListener。卸载组件后,我注销了其他内容,并希望删除相同的侦听器。

但是,当触发changeScreen函数并将用户导航到一个全新的组件/屏幕时,我没有收到“正在删除HELLO LISTENER”日志,并且侦听器仍然会触发。

我的问题是:

为什么在导航到新屏幕时未卸载此组件?

谢谢您的时间!

0 个答案:

没有答案