React Native + Expo Router启动时Unmatched Route错误及默认路由问题
解决Expo Router启动时Unmatched Route无法默认进入Home标签页的问题
可能的原因及解决步骤:
1. 根路由未正确指向Tabs布局
Expo Router启动时默认访问根路径/,如果app目录下没有配置根路由指向(tabs)组,就会出现路由匹配失败的问题。
解决方法:
在app目录下创建_layout.js文件,内容如下:
import { Stack } from 'expo-router'; export default function RootLayout() { return ( <Stack> <Stack.Screen name="(tabs)" options={{ headerShown: false }} /> </Stack> ); }
或者如果已有app/index.js,修改它为重定向到Home页:
import { Redirect } from 'expo-router'; export default function Index() { return <Redirect href="/(tabs)/home" />; }
2. 页面文件命名不符合Expo Router v2+规范
Expo Router v2及以后版本要求页面文件命名为page.js,如果home/explore等文件夹里用的是index.js,可能导致路由无法识别。
解决方法:
将每个tab文件夹里的index.js重命名为page.js,比如/(tabs)/home/page.js、/(tabs)/explore/page.js等。
3. 清除Expo缓存
缓存可能导致路由配置不生效,执行以下命令清除缓存后重启项目:
npx expo start --clear
4. 确认initialRouteName配置正确
你在(tabs)/_layout.js里设置的initialRouteName="home"是正确的,但需要确保根路由已正确加载Tabs布局,完成以上步骤后该配置才会生效。
内容的提问来源于stack exchange,提问作者RubberToe06
相关产品推荐
相关产品推荐

