This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
故障排除
编辑页面
修复 Expo Router 设置中的常见问题。
React Native DevTools 中缺少文件或源映射
如果你的 Chrome DevTools 的忽略列表中包含排除项,就可能发生这种情况。要修复此问题,请使用 React Native DevTools:
- 通过按下终端窗口中正在运行的开发服务器里的 J 来启动 React Native DevTools
- 通过点击齿轮图标打开 设置
- 在 扩展 下,点击 恢复默认设置并重新加载
- 再次打开 设置,然后转到 忽略列表 选项卡
- 取消勾选
/node_modules/的任何排除项
未定义 EXPO_ROUTER_APP_ROOT
如果 process.env.EXPO_ROUTER_APP_ROOT 未定义,你会看到以下错误:
当项目的 babel.config.js 中未使用 Babel 插件 expo-router/babel 时,就可能发生这种情况。你可以尝试使用以下命令清除缓存:
或者,你也可以通过在项目根目录创建一个 index.js 文件,并使用以下内容来规避此问题:
然后,在 package.json 中更新应用的主入口点:
不要使用此方法来更改根目录(app),因为它不会考虑在任何其他位置的使用情况。
未启用 require.context
当使用未启用上下文模块的 @expo/metro-config 自定义版本时,就可能发生这种情况。Expo Router 要求项目的 metro.config.js 使用 expo-router/metro 作为默认配置。删除 metro.config.js,或扩展 expo/metro-config。有关更多信息,请参阅 自定义 metro。
缺少返回按钮
如果你设置了一个模态框或其他预期带有返回按钮的屏幕,则需要将 unstable_settings 添加到路由的布局中,以确保配置好锚点路由。锚点路由在移动应用中比较特殊,在系统中的适配也不太自然——相关改进仍在进行中。