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

React-Router-Dom v6.9.0路由跳转异常问题求助

React Router Dom 6.9.0 路由跳转路径错误解决方案

问题核心

LoginForm是嵌套在根路由/下的子路由(路径login),使用相对路径跳转时,会基于当前路由/login解析路径,导致本该跳转到/create-account的请求被解析为/login/create-account。

解决方案

方案1:使用绝对路径跳转

直接在navigate中传入绝对路径/create-account,绝对路径会基于根路由解析,不受当前路由层级影响:

import { useNavigate } from "react-router-dom";

export default function LoginForm() {
  const navigate = useNavigate();

  return (
    <div className="loginForm">
      <h1>Login</h1>
      <p>
        Don't have an account? 
        <a onClick={() => navigate("/create-account")}> Create an account </a>.
      </p>
    </div>
  );
}

React Router提供的<Link>组件专门用于路由跳转,自动处理路径解析,无需手动绑定点击事件:

import { Link } from "react-router-dom";

export default function LoginForm() {
  return (
    <div className="loginForm">
      <h1>Login</h1>
      <p>
        Don't have an account? 
        <Link to="/create-account"> Create an account </Link>.
      </p>
    </div>
  );
}

补充说明

在React Router 6中,嵌套路由的相对路径基于当前路由层级解析。如果坚持使用相对路径,需确保路径相对于父路由,但绝对路径和<Link>组件是更可靠、更符合规范的实现方式,能避免路径解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 14:46:06