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

Expo Linking + React Navigation 无法跳转指定路径问题求助

解决Expo深链接无法跳转至profileOther页面的问题

问题排查与修复方案

1. 确认深链接格式与路径映射匹配

你的linking.config.screens中profileOther映射到"user",所以正确的深链接应该是exp://<你的设备IP>:<端口>/--/user。如果链接格式不对(比如多了或少了路径段),导航系统无法匹配到对应屏幕。

可以先打印生成的前缀验证:

console.log('当前深链接前缀:', prefix);

输出应为类似exp://192.168.x.x:19000/--/,在此基础上拼接user就是正确的跳转链接。

2. 检查导航配置的正确性

确保Stack.Screen的name与linking.config.screens中的键完全一致,当前代码里profileOther是匹配的,这部分没问题,但要注意大小写敏感,别出现拼写错误。

如果需要传递用户ID这类参数,可修改配置支持动态路径:

const linking = {
  prefixes: [prefix],
  config: {
    screens: {
      HomeScreen:'home',
      userPosts: "post",
      profileOther: "user/:userId", // 支持参数传递
    }
  }
}

对应的链接就变成exp://.../--/user/123,参数可在ProfileScreen中通过route.params.userId获取。

3. 确保深链接监听正常

Expo通常会自动处理深链接,但手动添加监听可辅助调试:

// 在Route组件外部添加
Linking.addEventListener('url', (event) => {
  const parsed = Linking.parse(event.url);
  console.log('接收到的深链接路径:', parsed.path);
});

触发链接后看控制台是否打印出/user,如果没打印,说明链接没被正确捕获,需检查设备网络和Expo服务器状态。

4. 测试注意事项

  • 确保设备与运行Expo服务器的电脑在同一局域网
  • 先通过Expo Go扫描开发二维码打开应用,再在浏览器打开深链接测试
  • 当前使用Expo默认的exp scheme,无需额外在app.json配置自定义scheme

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 14:47:43