Может ли стековый навигатор иметь 2 разных маршрута в реагирующей навигации?
Моя структура проекта выглядит так:
Tab navigator
|-Tab1
|-Tab2
|-stack navigator
|-login
|
screen1
|
screen2
|
screen3
|-Tab3
|-Tab4
Я хочу, чтобы мой маршрут стекового навигатора начинался с screen1, как только я ввел имя пользователя и пароль для экрана входа в систему. Есть ли способ, которым мы можем достичь этого? Можем ли мы перенаправить / изменить маршруты стекового навигатора?
1 ответ
Решение
Используйте SwitchNavigator для изменения / перенаправления стека экрана
Я не использую React Navigation V2, вам следует проверить документацию, если вам нужна дополнительная информация о RNV2
Вот пример TODO
:
в router.js (экран обработки):
const Tab = TabNavigator({
Customer : {
screen: Customer,
}
});
const TabLogged = TabNavigator({
Handyman: {
screen: Handyman,
}
});
// here's the key to handle which account is logged
export const Check = SwitchNavigator({
Auth: Auth,
Account1: Tab,
Account2: TabLogged
})
создайте Auth.js, чтобы проверить, какая учетная запись зарегистрирована или нет:
class foo extends React.component{
componentWillMount(){
this.props.navigation.navigate(usertype == "isLoggedIn" ? 'Account2' : 'Account1');
}
render(){
<View>
<ActivityIndicator size="large" color="#0000ff" />
<StatusBar barStyle="default" />
</View>
}
}
и в вашем app.js или index.js:
class app extends Component{
render() {
return <check/>;
}
}