反应本机。从外部控制导航器

时间:2019-07-19 02:37:19

标签: reactjs react-native react-navigation react-native-navigation stack-navigator

我是React Native的新手,正在尝试类似的事情。

const MainNavigator = createSwitchkNavigator({
   Screen1: { screen: Screen1 },
   Screen2: { screen: Screen2 },
});

if (some condition ) MainNavigator.navigate('Screen1');
else MainNavigator.navigate('Screen2');


const App = createAppContainer(MainNavigator);

有主意吗?我正在尝试从导航器外部强制导航到一个或另一个屏幕,具体取决于某些条件或最终由于某些用户点击按钮而做出的响应。该代码失败,并显示消息“ MainNavigator.navigate不是函数”。 我以为MainNavigator是通过this.props.navigation从Screen1和Screen2内部访问的同一对象。

我应该采用哪种方法?

最终的想法是,如果已登录,则将用户带到顶层屏幕;如果未登录,则将用户带到身份验证流。

谢谢。

1 个答案:

答案 0 :(得分:0)

不确定,但是您可以尝试:

const HomeStack = createStackNavigator(
  { DetailScreen, HomeScreen, OptionsScreen },
  { 
    initialRouteName: condition ? 'HomeScreen': 'DetailScreen', 
    transitionConfig: dynamicModalTransition 
   }
);

如果要在屏幕内移动它,可以使用:this.props.navigation.navigate('RouteName')