如何在注销时从 react native drawer-navigator 中删除屏幕(卸载组件)?如何重新加载组件数据?
How to remove screens (unmount component) from react native drawer-navigator on log out?How to reload Components Data?
我在我的应用程序中使用 react navigation v3,我在抽屉导航器中使用堆栈导航器,在单击注销时我导航到登录屏幕并清除用户存储,但是每当我再次登录时,主要组件不会调用componentWillMount 或 componentDidMount 方法,并显示 Previously loaded data on it.这是我的代码 >
const screens = {
login: { screen: Login },
dashboard: { screen: Dashboard },
patientList:{screen:StackNav},
headerComponent:HeaderComponent
}
const MyDrawerNavigator = createDrawerNavigator(
screens,
{
initialRouteName: 'login',
contentComponent: Sidebar
}
);
App = createAppContainer(MyDrawerNavigator);
export default App;
堆栈导航 ==
export default createStackNavigator({
PatientList,
PatientDetails
});
注销功能==
localStorageService.removeAllKeys().then((res) => {
this.props.navigation.navigate(route, { isLogin: 'N' })
});
将其放入抽屉导航器的导航选项中
unmountInactiveRoutes: true
在 React 导航中 5.x
使用unmountOnBlur
<Drawer.Screen
name={...}
component={...}
unmountOnBlur={true}
options={{unmountOnBlur: true}}
/>
作为补充:我在createDrawerNavigator() configs里面引入了配置,如上:
const AppNavigator = createDrawerNavigator(
{
Home:{
screen: Home
},
Login:{
screen: Login,
navigationOptions: {
drawerLabel: () => null
}
}
},
{
unmountInactiveRoutes: true
});
现在所有页面都在没有任何 "cache"。
我在我的应用程序中使用 react navigation v3,我在抽屉导航器中使用堆栈导航器,在单击注销时我导航到登录屏幕并清除用户存储,但是每当我再次登录时,主要组件不会调用componentWillMount 或 componentDidMount 方法,并显示 Previously loaded data on it.这是我的代码 >
const screens = {
login: { screen: Login },
dashboard: { screen: Dashboard },
patientList:{screen:StackNav},
headerComponent:HeaderComponent
}
const MyDrawerNavigator = createDrawerNavigator(
screens,
{
initialRouteName: 'login',
contentComponent: Sidebar
}
);
App = createAppContainer(MyDrawerNavigator);
export default App;
堆栈导航 ==
export default createStackNavigator({
PatientList,
PatientDetails
});
注销功能==
localStorageService.removeAllKeys().then((res) => {
this.props.navigation.navigate(route, { isLogin: 'N' })
});
将其放入抽屉导航器的导航选项中
unmountInactiveRoutes: true
在 React 导航中 5.x
使用unmountOnBlur
<Drawer.Screen
name={...}
component={...}
unmountOnBlur={true}
options={{unmountOnBlur: true}}
/>
作为
const AppNavigator = createDrawerNavigator(
{
Home:{
screen: Home
},
Login:{
screen: Login,
navigationOptions: {
drawerLabel: () => null
}
}
},
{
unmountInactiveRoutes: true
});
现在所有页面都在没有任何 "cache"。