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

React Router DOM v6.4中重定向时如何传递数据?

React Router v6.4 重定向时传递数据的正确方法

你当前调用redirect()函数的方式有误,导致state数据没传过去。在React Router v6.4中,redirect函数需要直接传入一个Location对象(包含pathname和state属性),而不是分开传递路径字符串和配置对象。

修正后的action代码

import { Form, redirect } from "react-router-dom";

export function action() {
  // 正确写法:传入包含pathname和state的Location对象
  return redirect({
    pathname: "/home",
    state: { value: 5 }
  });
}

export default function Blog() {
  return (
    <Form method="post">
      <button>Submit</button>
    </Form>
  );
}

接收数据的Home组件(可补充空值判断)

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

export default function Home() {
  const location = useLocation();
  // 可选:添加空值判断,避免state不存在时抛出错误
  console.log(location.state?.value); 
  return <div>Home</div>;
}

这种传递方式和旧版本<Redirect>组件的to属性逻辑一致,state中的数据会存在浏览器历史记录里,不会暴露在URL中,适合传递临时的、不需要公开的数据。

内容的提问来源于stack exchange,提问作者Martí Serra Molina

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:32:07