Выйти из бывшей навигации с помощью DrawerNavigation
Я построил свою навигацию на примере Ex-navigation
Все работает как положено, но я не знаю, как выйти
у меня есть <Main/>
компонент, который делает <DrawerNavigationMenu/>
как в примере. Это мой <DrawerNavigationMenu/>
render() {
return (
<DrawerNavigation
renderHeader={this._renderHeader}
drawerWidth={300}
initialItem="home">
<DrawerNavigationItem
id="home"
selectedStyle={styles.selectedItemStyle}
renderTitle={isSelected => this._renderTitle('Home', isSelected)}
renderIcon={isSelected => this._renderIcon('md-home', isSelected)}>
<StackNavigation
id="home"
defaultRouteConfig={{
navigationBar: {
backgroundColor: '#2497b7',
tintColor: '#fff',
height: 60,
},
}}
initialRoute={Router.getRoute('home')}/>
</DrawerNavigationItem>
<DrawerNavigationItem
id="logout"
selectedStyle={styles.selectedItemStyle}
renderTitle={isSelected => this._renderTitle('Logout', isSelected)}
renderIcon={isSelected => this._renderIcon('md-exit', isSelected)}>
<StackNavigation
id="root"
initialRoute={Router.getRoute('root')}/>
</DrawerNavigationItem>
</DrawerNavigation>
);
}
В пункте "Выйти" мне нужно сбросить стек навигации и визуализировать мою корневую сцену без возможности вернуться назад.
Я пытался с помощью initialStack=
вместо initialRoute=
, как это
<StackNavigation
id="root"
initialStack={[Router.getRoute('root')]}/>
Но когда я нажал (Android) назад, он все равно вернулся на домашнюю сцену. Я не использую Redux явно здесь. Это правильный способ реализации навигации выхода? Есть идеи? Пожалуйста!
1 ответ
Дайте DrawernavigationItem реквизит onPress
и вызвать функцию, которая переключается между страницами аутентификации и посадки.
<DrawerNavigationItem
id="Sign out"
selectedStyle={styles.selectedItemStyle}
onPress={()=>{this.signOut()}}
renderTitle={isSelected => this._renderTitle('Sign out', isSelected)}
/>