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

React Router中如何让Link替换而非追加URL路径

React Router 路径跳转问题解决

问题场景

现有导航栏及路由配置代码如下:

<div>
  <span>
    <NavLink to="home">Home</NavLink>
  </span>
  <span>
    <NavLink to="find">Find</NavLink>
  </span>
</div>

<Routes>
  <Route path="/home" element={<Home />} />
  <Route path="/find" element={<Find />} />
</Routes>

在Home组件内使用以下代码尝试跳转:

<button>
  <Link to="find">
    Find
  </Link>
</button>

点击按钮后URL变为localhost:3000/home/find,期望直接跳转到localhost:3000/find,而非相对路径追加。

解决方案

问题出在你用了相对路径("find"),React Router会基于当前页面URL自动追加路径。要实现绝对路径跳转,只需要在路径前加上斜杠/:

修改Home组件内的Link代码:

<button>
  <Link to="/find">
    Find
  </Link>
</button>

同时建议把导航栏里的NavLink路径也改成绝对路径,避免后续出现类似问题:

<div>
  <span>
    <NavLink to="/home">Home</NavLink>
  </span>
  <span>
    <NavLink to="/find">Find</NavLink>
  </span>
</div>

这样无论当前处于哪个路径,点击链接都会直接跳转到根路径下的对应页面,URL就会变成你期望的localhost:3000/find。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 10:50:24