Может ли стековый навигатор иметь 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/>;
  }
}
Другие вопросы по тегам