对于我的一生,我无法弄清楚。我有一个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},
})
是否只是不将所有场景都加载到堆栈中?
答案 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);