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

React Native Expo项目重载时显示‘Screen Doesn't Exist’求助

Expo Router 重载模拟器后跳转至“此页面不存在”问题排查与修复

在Android模拟器上开发基于Expo Router文件路由的React Native Expo项目时,新增路由后首次运行正常,但重载模拟器时,应用会跳转到“This screen doesn't exist.”(此页面不存在)页面。当前路由结构如下:

app
├── (tabs)
│   ├── profile
│   │   ├── index.tsx
│   │   └── _layout.tsx
│   ├── two.tsx
│   └── _layout.tsx
├── +html.tsx
├── +not-found.tsx
├── modal.tsx
└── _layout.tsx

已尝试删除(tabs)/_layout.tsx中的所有路由配置、删除旧路由对应文件、重新创建项目等操作,但问题仍未解决。


可能的修复方案

1. 清除缓存并重启开发服务

终止当前Expo开发服务器,清除Metro缓存后重新启动:

npx expo start --clear

同时在Android模拟器中执行清除应用缓存/数据操作,再重新加载应用。

2. 校验(tabs)/_layout.tsx的路由配置

确保Tabs组件的screen名称与文件系统中的路由完全匹配(Android文件系统区分大小写),避免硬编码错误。示例正确配置:

import { Tabs } from 'expo-router';

export default function TabLayout() {
  return (
    <Tabs>
      <Tabs.Screen name="profile" />
      <Tabs.Screen name="two" />
    </Tabs>
  );
}

3. 检查profile/_layout.tsx的布局配置

profile文件夹下的_layout.tsx仅需作为布局容器,无需额外路由定义,示例正确写法:

import { Stack } from 'expo-router';

export default function ProfileLayout() {
  return <Stack />;
}

4. 确保Expo与Expo Router版本兼容

检查项目依赖中expo和expo-router的版本是否匹配,建议更新至最新稳定版:

npx expo install expo-router@latest expo@latest

5. 验证根_layout.tsx的初始路由设置

确认根布局中初始路由指向正确,避免重载时导航到无效路径:

import { Stack } from 'expo-router';

export default function RootLayout() {
  return <Stack initialRouteName="(tabs)" />;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 20:07:07