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

React路由导航追加URL而非重置跳转问题求助

解决React Router导航路径错误的问题

嘿,我刚看完你的问题,这其实是React Router里相对路径和绝对路径的常见小坑!

问题根源

你导航栏里的Link用的是相对路径(比如to="people"),当你当前处于/addPersonToHouse/8这样的多级路径时,React Router会默认把相对路径拼在当前路径的最后层级后面,所以就出现了/addPersonToHouse/people这种不符合预期的URL。

解决方案

把所有导航栏里的Link的to属性改成绝对路径——也就是在路径前面加上/,让它们始终相对于网站根路径跳转。

修改后的导航代码如下:

render() {
  return (
    <Navbar bg="dark" variant="dark">
      <Link to="/" className="navbar-brand">House App</Link>
      <Nav className="mr-auto" >
        <Link to="/addHouse" className="nav-link">Add House</Link>
        <Link to="/houses" className="nav-link">Manage Houses</Link>
        <Link to="/addPerson" className="nav-link">Add User</Link>
        <Link to="/people" className="nav-link">Users</Link>
      </Nav>
    </Navbar>
  );
}

额外说明

如果你的项目用的是React Router v6,相对路径的行为有一些细节调整,但核心逻辑还是一致的:带/的绝对路径从网站根目录开始匹配,相对路径则从当前路由的层级延伸。所以不管是v5还是v6,给导航栏的固定链接加上/都是最稳妥的做法,能彻底避免这种路径拼接错误。

这样修改后,不管你当前在哪个页面,点击导航栏的链接都会直接跳转到根路径下的对应路由——比如从/addPersonToHouse/8点击"Users"就会正常跳转到/people啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 10:57:34