【发布时间】:2021-11-10 21:18:25
【问题描述】:
我目前已经在我的应用上实现了退出功能(使用 firebase 身份验证):
const handleSignOut = () => {
signOut(auth)
.then(() => navigation.navigate("Login"))
.catch((err) => console.error(err));
};
但是,我知道这还不够,因为我注意到某些状态正在跨用户保留(即使在注销后仍保留状态),我想知道清除/重置所有状态的最佳方法是什么。
我是否需要手动卸载所有组件(我仍然不太了解组件卸载的方式/时间),还是有一种简单的方法可以使用导航或上下文工具来实现此目的?
我正在使用 Context API 和 React Navigation:
const Stack = createStackNavigator();
const Navigation = () => {
return (
<NavigationContainer>
<Stack.Navigator
headerMode="none"
>
<Stack.Screen
name="Register"
component={RegisterScreen}
/>
<Stack.Screen
name="Login"
component={LoginScreen}
/>
<Stack.Screen
name="Home"
component={HomeScreen}
/>
</Stack.Navigator>
</NavigationContainer>
);
};
【问题讨论】:
标签: react-native react-navigation react-context