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

Expo动态路由无法获取本地参数的问题排查求助

Expo动态路由无法获取本地参数的问题排查求助

各位大佬好!我最近在Expo项目里卡到动态路由的坑里了,折腾了好几天都没解决,来这儿求帮忙啦!

我的需求

我想通过动态路由/auth/[screen].tsx来展示不同状态的认证页面,比如welcome、login、register这些。在app/_layout.tsx里,我打算借助认证提供者,在用户未登录时自动跳转到/auth/welcome页面,思路就是用router.replace('/auth/welcome');这类路由跳转方法。

遇到的问题

不管我用哪种本地路由跳转方式,[screen].tsx页面里始终拿不到参数,页面完全是空的:

  • 用router.replace({ pathname: '/auth/[screen]', params: { screen: 'welcome' } });(push方法也试过,结果一样)
  • 用<Link href="/auth/login">组件跳转

**但是!**如果用深度链接的方式跳转就完全正常:

  • 调用Linking.openURL('exp://localhost:8081/--/auth/welcome');
  • 或者在终端执行命令xcrun simctl openurl booted exp://localhost:8081/--/auth/register

这时候路由就能正常工作,screen参数也能正确获取到,完全符合预期。

我已经尝试过的排查操作

  • 清除项目缓存、完全重启项目这些常规操作都试过了,没用
  • 查看项目的sitemap,显示的是auth/[screen].tsx +not-found.tsx,看起来路由配置是没问题的
  • 把布局里的Slot换成Stack组件,结果还是一样,只是多了个滑动导航的动画而已,参数依旧拿不到

求助

我到底漏了什么关键配置或者细节啊?已经做了最小复现的项目,但还是没找到问题根源,求各位大佬帮忙分析分析!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 08:02:56