配置如下:
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
然后您会在登录屏幕上看到一个非常常见的模式:
没有帐户? [注册]
所以
我们在上面LoginScreen
中。
我们点击“ [注册]”按钮
我们必须导航到SignUpFlow
的{{1}}。
请记住,我们使用SignUpScreen
作为StackNavigator的父级。
因此,从StackNavigator到StackNavigator must be reset to defaults导航时应用程序/路由的状态。
SwitchNavigator的目的是一次只显示一个屏幕。默认情况下,它不处理后退操作,当您离开时,它会将路由重置为其默认状态。
目标是从SwitchNavigator
导航到SignUpScreen
。
如何使用上面配置的React Navigator来实现这种通用模式?
环境是适用于IOS的React Native
答案 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);