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

Expo Router路由警告:不存在(tabs)路由,升级SDK后项目无法启动求助

解决Expo SDK更新后路由找不到"(tabs)"的问题

1. 修复根布局_layout.jsx的路由配置

Expo Router需要在根app/_layout.jsx中显式注册子路由,否则无法识别(tabs)文件夹。确保你的根布局包含对(tabs)的路由声明:

// app/_layout.jsx
import { Stack } from 'expo-router';

export default function RootLayout() {
  return (
    <Stack>
      <Stack.Screen name="(tabs)" options={{ headerShown: false }} />
      <Stack.Screen name="+not-found" />
    </Stack>
  );
}

如果根布局未注册(tabs),Router会直接匹配+not-found页面,触发你看到的警告。

2. 验证(tabs)文件夹的结构与内容

  • 确认(tabs)文件夹使用英文半角括号命名,无拼写错误(避免写成[tabs]或tabs)。
  • 确保(tabs)/_layout.jsx正确配置了Tabs组件,且包含至少一个可访问的子路由(比如(tabs)/home.jsx):
// app/(tabs)/_layout.jsx
import { Tabs } from 'expo-router';

export default function TabsLayout() {
  return (
    <Tabs>
      <Tabs.Screen name="home" options={{ title: '首页' }} />
      // 需存在对应home.jsx文件
    </Tabs>
  );
}

空的(tabs)文件夹或无有效子路由会导致Router无法识别该路由节点。

3. 彻底清除缓存并重启项目

缓存异常是SDK更新后常见问题,执行以下操作:

  • 运行命令:npx expo start --clear,强制清除Expo缓存
  • 在Expo Go中删除当前项目,重新扫码加载

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

不同Expo SDK版本对应不同的Expo Router版本,版本不匹配会导致路由解析失败:

  • 查看package.json中的expo-router版本,执行npx expo install expo-router安装适配当前SDK的版本

5. 处理根目录index.jsx的冲突

如果根目录存在index.jsx,它会作为默认路由优先级高于(tabs)。若需以(tabs)为首页,可:

  • 删除根目录index.jsx
  • 或在index.jsx中添加重定向:
// app/index.jsx
import { Redirect } from 'expo-router';

export default function Index() {
  return <Redirect href="/(tabs)" />;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 10:12:16