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

React Navigation 5.x 底部标签(Tabs)栈深层链接跳转失败问题咨询

问题分析

  1. 导航层级配置不匹配
    你的实际导航结构为:
    NavigationContainer → LoginStack → TabStack(登录后可见路由) → 底部Tab路由Setting → SettingStack内的SettingScreen
    你当前的Linking配置直接将Setting放在最外层screens节点下,没有对应外层的TabStack路由层级,React Navigation无法匹配到深层路由。
  2. 参数格式不匹配
    你配置的路径setting_register/:token对应路径参数格式链接test://setting_register/1111,但你实际使用的是查询参数格式test://setting_register?token=1111,参数解析逻辑不匹配导致拿不到参数。
  3. 配置存在语法错误
    你给出的Linking配置中,screens对象存在多余的闭合大括号和逗号,会导致配置解析失败。

修复方案

修改Linking.js的配置如下:

const config = {
  screens: {
    // 原有个人信息页面配置保留
    PersonalInfoScreen: {
      path: 'info_register/',
      parse: {
        token: (token) => `${token}`,
      },
    },
    // 新增TabStack层级,对应LoginStack里的TabStack路由名
    TabStack: {
      screens: {
        // 对应底部Tab导航的Setting路由
        Setting: {
          screens: {
            SettingScreen: {
              path: 'setting_register/',
              parse: {
                token: (token) => `${token}`,
              }
            }
          }
        }
      }
    }
  }
};

const Linking = {
  prefixes: ['test://'],
  config,
};

export default Linking;

补充说明

  • 如果你的SettingStack本身也是嵌套的栈导航,需要确保SettingScreen的路由名称和配置中完全一致。
  • 若需要在未登录状态下也能通过test://setting_register?token=1111跳转,需要处理登录态重定向逻辑:要么将SettingScreen加入公共路由栈,要么在检测到对应深层链接时先引导用户完成登录再跳转对应页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:15:01