react-navigation升级到v6版本后TransitionPresets不生效问题咨询
react-navigation v6 TransitionPresets 不生效问题解决方案
该问题的核心原因是混淆了普通Stack导航器和Native Stack导航器的适用API:
TransitionPresets仅支持普通JS Stack导航器
TransitionPresets是@react-navigation/stack(JS实现的普通Stack导航器)专属的配置项,不适用于@react-navigation/native-stack(原生实现的Native Stack导航器)。Native Stack的转场逻辑由原生系统控制,自定义转场的API和普通Stack完全不通用,升级过程中误将导航器切换为Native Stack是导致该配置失效的最常见原因。修复步骤
- 确认你的导航器依赖引入和初始化方式正确,普通Stack的写法如下:
import { createStackNavigator, TransitionPresets } from '@react-navigation/stack'; const Stack = createStackNavigator();
- 排查是否使用了Native Stack的引入方式,如下写法会导致TransitionPresets完全失效:
// 该场景下TransitionPresets不生效 import { createNativeStackNavigator } from '@react-navigation/native-stack'; const Stack = createNativeStackNavigator();
- 切换为普通Stack导航器后,你原有的配置代码即可正常生效:
<Stack.Screen name="Home" component={Home} options={{ ...TransitionPresets.ModalSlideFromBottomIOS }} />
内容的提问来源于stack exchange,提问作者Keisuke Horota
相关产品推荐
相关产品推荐

