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

Expo Router栈导航中initialRouteName无法指定初始路由问题

问题原因与解决办法

原因

Expo Router 中,(initial) 是特殊的路由组命名,它的优先级高于导航配置里的 initialRouteName 设置。这个命名的路由组专门用于指定应用启动时最先渲染的内容,无论你在导航容器中怎么配置初始路由,框架都会优先加载 (initial) 下的页面。

解决办法

根据你的需求选择以下方案:

方案1:保留(initial)作为启动页,完成后跳转至(main)

如果 (initial) 是启动引导页之类的场景,在(initial)的页面中添加导航逻辑,完成后跳转到(main)路由:

import { useRouter } from 'expo-router';
import { useEffect } from 'react';

export default function InitialPage() {
  const router = useRouter();

  // 示例:页面加载后自动跳转,也可通过按钮触发
  useEffect(() => {
    const timer = setTimeout(() => {
      router.replace('/(main)'); // 用replace避免返回启动页
    }, 2000);
    return () => clearTimeout(timer);
  }, []);

  return <div>启动页内容</div>;
}

方案2:移除/重命名(initial)路由组

如果不需要这个启动专属的路由组,直接删除(initial)文件夹,或者把它重命名为普通路由组(比如(welcome)),此时你配置的 initialRouteName: '(main)' 就会正常生效,应用启动时会直接加载(main)下的页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 05:38:11