Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 89x 89x 541x 541x 541x 541x 541x 2x 541x | import type { NextRouter } from "next/router";
import { useRouter } from "next/router";
import { useRef, useState } from "react";
// from https://github.com/vercel/next.js/issues/18127#issuecomment-950907739
export default function useStablePush(): NextRouter["push"] {
const router = useRouter();
const routerRef = useRef(router);
routerRef.current = router;
const [{ push }] = useState<Pick<NextRouter, "push">>({
push: (path) => routerRef.current.push(path),
});
return push;
}
|