如何在Expo Router嵌套路由中从(auth)导航至根index?
解决Expo Router从(auth)组跳转到根目录index的问题
你的问题出在路由路径冲突上:根目录的index.tsx和(auth)组里的index.tsx对应的路由都是"/",Expo Router默认会优先匹配当前所在组内的路由,所以调用router.replace("/")才会跳到组内的首页,而非根目录的。
给你几个可行的解决办法:
- 用相对路径跳出组:在
sign-in.tsx里改成调用router.replace("../"),直接跳出(auth)组,就能匹配根目录的index.tsx。 - 重命名组内的index文件:把
(auth)/index.tsx改成别的名字(比如auth-home.tsx),这样组内就没有路径为"/"的路由了,再调用router.replace("/")就会直接跳根目录。 - 强制指定绝对路径:用带参数的导航写法,明确告诉路由要跳根路径:
router.replace("/", { href: "/" })
补充背景
这是Expo Router早期版本的路由匹配优先级bug,社区里不少人遇到过类似情况:组内有和根目录同名的index.tsx时,根路径导航会优先走组内路由。后来的版本已经修复了这个问题,但如果你用的是旧版本,上面的方法都能解决问题。
内容的提问来源于stack exchange,提问作者ZackOfAllTrades
相关产品推荐
相关产品推荐

