主分支
分支
主分支 (6.23.1)开发分支
版本
6.23.1v4/5.xv3.x
重定向

redirect

因为你可以在加载器和操作中返回或抛出响应,所以你可以使用 redirect 重定向到另一个路由。

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

const loader = async () => {
  const user = await getUser();
  if (!user) {
    return redirect("/login");
  }
  return null;
};

这实际上只是以下内容的快捷方式

new Response("", {
  status: 302,
  headers: {
    Location: someUrl,
  },
});

建议在加载器和操作中使用 redirect,而不是在组件中使用 useNavigate,当重定向是对数据的响应时。

另请参阅

类型声明

type RedirectFunction = (
  url: string,
  init?: number | ResponseInit
) => Response;

url

要重定向到的 URL。

redirect("/login");

init

将在响应中使用的 Response 选项。

文档和示例 CC 4.0