这里是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”日志,并且侦听器仍然会触发。
我的问题是:
为什么在导航到新屏幕时未卸载此组件?
谢谢您的时间!