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

Expo Router:Tab布局内跳转至Stack屏幕的问题排查与解决

Expo Router Tabs嵌套Stack导航问题解决

直接修改两处代码即可解决:

  1. 根Tabs布局(app/_layout.tsx)
    删掉href配置,Expo Router会自动关联settings目录的路由入口,代码示例:

    import { Tabs } from 'expo-router';
    import Settings from '@/components/Settings'; // 替换为你的图标组件实际路径
    
    export default function RootLayout() {
      return (
        <Tabs>
          <Tabs.Screen
            name="index"
            options={{ title: '首页' }}
          />
          <Tabs.Screen
            name="settings"
            options={{
              title: '设置',
              tabBarIcon: ({ color, size }) => (
                <Settings color={color} size={size} />
              ),
            }}
          />
        </Tabs>
      );
    }
    
  2. Settings目录的Stack布局(app/settings/_layout.tsx)
    保持Stack正常包裹index页面,配置嵌套路由:

    import { Stack } from 'expo-router';
    
    export default function SettingsLayout() {
      return (
        <Stack>
          <Stack.Screen
            name="index"
            options={{ title: '设置详情' }} // 此处标题为Stack导航栏标题,不影响底部Tab栏
          />
        </Stack>
      );
    }
    

问题原因说明:

  • 手动设置href会打乱Expo Router的嵌套路由规则:设为/settings时无法触发正确导航,设为/settings/index则会直接跳过settings/_layout导致路由不匹配错误。
  • 外层Tabs必须使用Tabs.Screen才能控制底部Tab栏的图标和标题,换成Stack.Screen会归嵌套导航管理,无法影响外层Tab栏配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 08:37:53