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 | 77x 77x 427x 427x 427x 427x 427x 2x 427x | 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; } |