React Native Firebase onStateChanged 不会在卸载时取消订阅
React Native Firebase onStateChanged doesn't unsubscribe on unmount
我正在使用 React-Navigation 5 和 React Native Firebase 库。我希望 onStateChange 在从初始屏幕导航到另一个屏幕后不工作,但它仍然在后台工作的原因可能是什么?
这里是 onStateChange 函数:
function onAuthStateChanged(user) {
setUser(user);
if (initialized) setinitialized(false);
}
这里是useEffect函数:
useEffect(() => {
const subscriber = auth().onAuthStateChanged(onAuthStateChanged);
return subscriber; // unsubscribe on unmount
}, []);
我用 React Navigation 的 useFocusEffect 解决了这个问题。只需将 useEffect 替换为 useFocusEffect。
我正在使用 React-Navigation 5 和 React Native Firebase 库。我希望 onStateChange 在从初始屏幕导航到另一个屏幕后不工作,但它仍然在后台工作的原因可能是什么?
这里是 onStateChange 函数:
function onAuthStateChanged(user) {
setUser(user);
if (initialized) setinitialized(false);
}
这里是useEffect函数:
useEffect(() => {
const subscriber = auth().onAuthStateChanged(onAuthStateChanged);
return subscriber; // unsubscribe on unmount
}, []);
我用 React Navigation 的 useFocusEffect 解决了这个问题。只需将 useEffect 替换为 useFocusEffect。