如何防止在StackAction.reset期间反应导航显示过渡动画?

时间:2020-01-15 17:11:16

标签: react-native react-navigation expo react-navigation-stack

使用react-navigation-stack 1.10.3,重置StackActions将新堆栈加载到位,而无需进行过渡。与react-navigation-stack 2.0.15相同的代码段添加了平台默认过渡,对于iOS为SlideFromRightIOS。

如何在1.10.X和2.0.X上复制以前的行为,而在重置堆栈时没有过渡?

navigation.dispatch(
    StackActions.reset({
        index: 0,
        actions: [
            NavigationActions.navigate({
                routeName: user ? 'Home' : 'Landing',
            }),
        ],
    }),
);

2 个答案:

答案 0 :(得分:3)

您可以通过在animationEnabled: falsenavigationOptions屏幕的Home中添加Landing来禁用这些屏幕的动画。

Home.navigationOptions = {
  animationEnabled: false
}

答案 1 :(得分:0)

反应导航V5

decrypt

否则,您可以执行此操作以避免android中的眨眼效果:

{/* Screen level */}
<NavigationContainer>
  <Stack.Navigator>
    <Stack.Screen
      name="HomeScreen"
      component={HomeScreen}
      options={{
        animationEnabled: false,
      }}
    />
  </Stack.Navigator>
</NavigationContainer>

{/* Whole navigation stack */}
<Stack.Navigator screenOptions={{ animationEnabled: false }}></Stack.Navigator>