主要
分支
主要 (6.23.1)dev
版本
6.23.1v4/5.xv3.x
redirect

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

要在回應中使用的 回應選項。