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
要在回應中使用的 回應選項。