如何在Expo Router中跳过index.js直接启动到指定页面?
解决Expo Router启动直接进入指定页面并避免跳转动画的方法
方法一:调整路由文件命名(最简单)
把app/(tabs)/home.jsx重命名为app/(tabs)/index.jsx,然后删除根目录的index.jsx。Expo Router启动时会自动加载(tabs)组的默认入口文件,完全不需要跳转操作,自然不会出现切换动画。
方法二:修改根布局的初始路由
如果不想修改文件名,可在根app/_layout.jsx中配置Stack导航的初始路由,直接指向目标页面:
import { Stack } from 'expo-router'; export default function RootLayout() { return ( <Stack initialRouteName="(tabs)/home"> {/* Expo Router会自动匹配文件系统路由,无需额外定义 */} </Stack> ); }
之后删除根目录的index.jsx,应用启动时会直接加载(tabs)/home页面,无跳转动画。
方法三:手动跳转并禁用动画(备选)
如果必须保留根index.jsx,可以通过useRouter手动跳转并禁用动画:
import { useEffect } from 'react'; import { useRouter } from 'expo-router'; const StartPage = () => { const router = useRouter(); useEffect(() => { // 禁用跳转动画,直接替换当前路由 router.replace('/home', { animation: 'none' }); }, []); return null; // 无需渲染任何内容 }; export default StartPage;
内容的提问来源于stack exchange,提问作者vintriguna
相关产品推荐
相关产品推荐

