You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在使用Expo Router的replace()方法时禁用页面跳转动画?

如何在Expo Router中实现无动画页面跳转

全局禁用所有跳转动画

如果希望整个应用的页面跳转都没有动画,直接在根布局文件(_layout.tsx 或 _layout.jsx)里配置Stack导航的screenOptions:

import { Stack } from 'expo-router';

export default function RootLayout() {
  return (
    <Stack
      screenOptions={{
        animation: 'none',
      }}
    >
      <Stack.Screen name="index" />
      <Stack.Screen name="my-link" />
      {/* 其他页面路由 */}
    </Stack>
  );
}

仅特定跳转禁用动画

要是只需要某一次跳转无动画,不用全局修改,直接给router.replace加第二个参数传导航选项就行:

router.replace({
  pathname: '/my-link',
  params: {},
}, {
  animation: 'none', // 关闭这次跳转的动画
});

也可以用useNavigation钩子拿到原生导航对象,调用replace时指定动画选项,效果一致:

import { useNavigation } from 'expo-router';

// 组件内部使用
const navigation = useNavigation();

navigation.replace('/my-link', {}, {
  animation: 'none',
});

额外提示

Expo Router基于React Navigation开发,所以React Navigation支持的所有动画配置选项都能这么用,比如还可以通过animationTypeForReplace控制替换页面时的动画类型,按需调整即可。

内容的提问来源于stack exchange,提问作者Zorayr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 17:24:54