使用React Navigation

时间:2018-10-18 00:35:39

标签: javascript react-native react-navigation

对于我的一生,我无法弄清楚。我有一个React Native应用程序,该应用程序在初始屏幕上进行一些身份验证,然后导航到登录页面。登陆页面(中间)在左侧和右侧都有一个屏幕。

使用this.props.navigation.navigate('RouteName')进行正确导航即可。但是,当我导航到左侧屏幕时,它仍然从右侧滑入。有什么方法可以覆盖此行为?

const RootStack = createStackNavigator(
  {
    Splash: {screen: Splash, navigationOptions:navConfig},
    middleScreen: {screen: Middle, navigationOptions:navConfig},
    LeftScreen: {screen: Left, navigationOptions:navConfig},
    RightScreen: {screen: Right, navigationOptions:navConfig},
  })

是否只是不将所有场景都加载到堆栈中?

2 个答案:

答案 0 :(得分:1)

很抱歉,您对滑动方向动画的直观定义完全错误。它不是那样工作的,您定义路线的顺序与这些路线的动画完全无关。

更进一步,您的请求非常普遍,在这个stackoverflow问题中,您可以找到所需的答案:From left to right window animation with react-navigation?

答案 1 :(得分:1)

我使用@Giacomo Cerquone的建议,解决了我在这里面临的大多数问题。

const resetAction = StackActions.reset({
    index: 1,
    actions: [
    NavigationActions.navigate({ routeName: 'Left'}),
    NavigationActions.navigate({ routeName: 'Middle' }), // Index 1 selects this one
    NavigationActions.navigate({ routeName: 'Right' }),
  ],
});

this.props.navigation.dispatch(resetAction);