【问题标题】:React Native. Control a navigator from outside of it反应原生。从外部控制导航器
【发布时间】:2019-07-19 02:37:19
【问题描述】:

我是 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 内部访问的同一个对象。

我应该对这个想法采取什么方法?

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

谢谢。

【问题讨论】:

  • 如果this.props.navigation 不为空,您可以导航到应用程序内的任何页面。就做this.props.navigation.navigate(route);
  • 我确实从 Screen1 导航到 Screen2,反之亦然。我的问题是如何强制子导航器导航。
  • 只需致电this.props.navigation.navigate(route);

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


【解决方案1】:

我不确定,但你可以试试:

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

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

【讨论】:

    猜你喜欢
    • 2020-03-19
    • 1970-01-01
    • 2018-04-17
    • 2021-03-23
    • 2017-06-09
    • 2020-11-26
    • 2021-12-27
    • 2021-02-22
    相关资源
    最近更新 更多