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

React Native嵌套导航:跳转至嵌套页后如何跳过中间页返回?

解决返回时跳过中间路由的问题

核心原因

你当前通过嵌套navigate的写法,会把menu、menu/sessions依次加入导航栈,所以返回时会按栈的顺序依次回溯这两个页面。要实现直接回到home,需要修改导航栈的结构,避免把中间页加入栈中。

具体实现方案

方案一:用navigation.reset重置导航栈

直接重置整个导航栈,只保留home和目标页面menu/sessions/record,这样返回时会直接回到home:

navigation.reset({
  index: 1,
  routes: [
    { name: 'home' }, // 固定保留首页在栈底
    {
      name: 'menu',
      params: {
        initial: false,
        screen: 'menu/sessions',
        params: {
          initial: false,
          screen: 'menu/sessions/record',
          params: {
            sessionId: session.id,
          },
        },
      },
    },
  ],
});

方案二:用navigation.replace替换当前路由

如果跳转前导航栈中只有home这一个页面,可以用replace替换当前路由,这样栈中只会存在目标嵌套路由,返回时直接回到home:

navigation.replace('menu', {
  initial: false,
  screen: 'menu/sessions',
  params: {
    initial: false,
    screen: 'menu/sessions/record',
    params: {
      sessionId: session.id,
    },
  },
});

方案对比

  • reset方法更灵活,能精准控制栈内保留的路由,适合需要明确保留首页的复杂场景。
  • replace写法更简洁,适合栈结构简单(仅首页在前)的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 00:00:55