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

React Router导航异常:多次点击按钮后需多次触发浏览器返回键

解决React Router多次跳转后返回键需多次点击的问题

问题原因

  1. useNavigate使用错误:useNavigate函数本身不接受配置参数,replace选项要在调用navigate方法时作为第二个参数传入,你当前的写法不会生效。
  2. 默认新增历史记录:每次点击按钮调用navigate时,默认会向浏览器历史栈添加一条新记录,多次点击后栈里会累积多条相同路由记录,导致返回需要多次点击。
  3. 相对路径存在风险:使用../register这类相对路径,当路由层级变化时可能出现跳转错误,建议改用绝对路径。

修正后的Button组件代码

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

export const Button = () => {
  const navigate = useNavigate();
  return (
    <>
      <button
        onClick={() => navigate("/register", { replace: true })}
        className='justify-center items-center bg-buttoncolor text-white px-6 py-2 rounded-full'
      >
        Sign Up Now
      </button>
    </>
  );
};
export default Button;

关键说明

  • 绝对路径跳转:用/register绝对路径,确保跳转目标明确,不受当前路由层级影响。
  • replace模式:navigate的第二个参数{ replace: true }会让路由跳转时替换当前历史记录,而非新增。这样无论点击多少次按钮,浏览器历史栈里只会保留一条/register的记录,点击一次返回键就能回到之前的路由页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 06:00:47