对于正常数据变动(例如窗口聚焦或按间隔轮询)之外的原因,重新验证页面上的数据。
import { useRevalidator } from "react-router";
function WindowFocusRevalidator() {
const revalidator = useRevalidator();
useFakeWindowFocus(() => {
revalidator.revalidate();
});
return (
<div hidden={revalidator.state === "idle"}>
Revalidating...
</div>
);
}
请注意,页面数据在执行 actions 后会自动重新验证。如果您发现在响应用户交互时将此 Hook 用于数据的常规 CRUD 操作,那么您可能没有充分利用 useFetcher、Form、useSubmit 等其他会自动执行此操作的 API。
useRevalidator(): undefined