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

使用Expo启动React Native应用时出现Unmatched Route错误求助

排查Expo Go路由匹配失败问题

以下是针对你遇到的“Unmatched Route - Page could not be found”错误的具体排查步骤:

1. 核对导航配置的初始路由

检查你的Navigation.tsx中导航容器的initialRouteName设置,确保它指向存在的路由名称,且拼写、大小写完全一致。比如使用React Navigation Stack的场景:

// Navigation.tsx示例
import { createStackNavigator } from '@react-navigation/stack';
import StartScreen from './StartScreen';
import Home from './Home';

const Stack = createStackNavigator();

export default function Navigation() {
  return (
    <Stack.Navigator
      // 确保initialRouteName对应已定义的路由名称
      initialRouteName="StartScreen"
    >
      <Stack.Screen name="StartScreen" component={StartScreen} />
      <Stack.Screen name="Home" component={Home} />
    </Stack.Navigator>
  );
}

确认路由名称(如"StartScreen")和组件导入路径都没有错误。

2. 确认App.tsx的挂载逻辑

检查App.tsx是否直接渲染导航组件,没有额外的路由冲突逻辑:

// App.tsx示例
import Navigation from './Navigation';

export default function App() {
  return <Navigation />;
}

避免在导航组件外层添加其他路由相关的包装,导致初始路由被覆盖。

3. 统一所有路由名称的一致性

确保所有涉及路由名称的地方(初始路由、跳转逻辑、导航配置)完全一致,React Navigation的路由名称大小写敏感,比如不能把"StartScreen"写成"startScreen"。

4. 修正app.json的路由配置(针对Expo Router场景)

如果你使用的是Expo Router(基于app/目录结构的路由系统),而非传统React Navigation:

  • 确保app.json中expo.router.root指向正确的路由根目录,比如:
    {
      "expo": {
        "router": {
          "root": "./app"
        }
      }
    }
    
  • 检查app/目录下是否有_layout.tsx配置初始路由,或者存在index.tsx作为默认入口页面。传统React Navigation场景下,app.json不需要配置路由,之前的操作可能无效。

5. 清除缓存重启服务

执行以下命令清除Metro缓存并重启Expo服务:

npx expo start --clear

缓存残留可能导致路由配置不生效,清除后重新用Expo Go扫码访问。

6. 验证页面组件的导出方式

确保StartScreen.tsx和Home.tsx是正确导出的:

// StartScreen.tsx示例
export default function StartScreen() {
  return (
    // 组件内容
  );
}

如果使用命名导出,需在导入时对应使用import { StartScreen } from './StartScreen';,避免因组件未加载导致路由找不到。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 15:47:13