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 选项。