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

React Router v6同级路由跳转URL未替换反而追加的问题

React Router v6嵌套路由跳转URL异常问题解决

问题核心:你用的是相对路径跳转,React Router会基于当前页面的URL拼接新路径,所以从/home/sibling1跳转到sibling2时,路径会被追加为/home/sibling1/sibling2。

三种解决方法:

1. 使用绝对路径

直接指定完整路径,确保跳转目标是/home/sibling2:

<div className='btn'>
  <Link to="/home/sibling2">
    <button>sibling2</button>
  </Link>
</div>

2. 使用相对路径回到父级

用../回到/home路径下,再跳转同级路由:

<div className='btn'>
  <Link to="../sibling2">
    <button>sibling2</button>
  </Link>
</div>

3. 统一在父组件(Home)中放置导航

如果把跳转链接放在Home组件里(嵌套路由的父元素),直接用相对路径sibling2就会正常跳转到/home/sibling2——此时相对路径的基准是父路由/home:

// Home组件代码示例
import { Outlet, Link } from 'react-router-dom';

function Home() {
  return (
    <div>
      <div className='btn'>
        <Link to="sibling1">sibling1</Link>
      </div>
      <div className='btn'>
        <Link to="sibling2">sibling2</Link>
      </div>
      <div className='btn'>
        <Link to="sibling3">sibling3</Link>
      </div>
      {/* 渲染子路由组件 */}
      <Outlet />
    </div>
  );
}

注意:Home组件必须引入并使用Outlet,否则子路由的内容无法渲染。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:24:44