如何在SwitchNavigator下的不同StackNavigator的屏幕之间导航?

时间:2018-06-22 09:45:58

标签: react-native react-navigation react-native-ios

配置如下:

SwitchNavigator
    LoadingScreen: Component
    App: StackNavigator
        ProfileScreen
        DashboardScreen
    SignInFlow: StackNavigator
        LoginScreen  // <= Initially we're here
        LikeScreen
    SignUpFlow: StackNavigator
        SignUpScreen // <= The goal is to navigate to here
        TCScreen

然后您会在登录屏幕上看到一个非常常见的模式:

  

没有帐户? [注册]

所以

  1. 我们在上面LoginScreen中。

  2. 我们点击“ [注册]”按钮

  3. 我们必须导航到SignUpFlow的{​​{1}}。

请记住,我们使用SignUpScreen作为StackNavigator的父级。

因此,从StackNavigator到StackNavigator must be reset to defaults导航时应用程序/路由的状态。

  

SwitchNavigator的目的是一次只显示一个屏幕。默认情况下,它不处理后退操作,当您离开时,它会将路由重置为其默认状态。

目标是从SwitchNavigator导航到SignUpScreen

如何使用上面配置的React Navigator来实现这种通用模式?

环境是适用于IOS的React Native

1 个答案:

答案 0 :(得分:0)

如果要从stackNavigator导航到另一个导航器,可以使用如下所示的NavigationActions:

import { NavigationActions } from 'react-navigation';

const navigateAction = NavigationActions.navigate({
routeName: 'the name of the stack route',

params: {},

action: NavigationActions.navigate({ routeName: 'route' , params : {"maybe you want to send the use name or email ... "} }),
});

this.props.navigation.dispatch(navigateAction);