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。