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 19 20 21 | 38x 38x 4193x 4193x 1954x 4193x | import { useRef } from "react" type Init<T> = () => T /** * Creates a constant value over the lifecycle of a component. * * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer * a guarantee that it won't re-run for performance reasons later on. By using `useConstant` * you can ensure that initialisers don't execute twice or more. */ export function useConstant<T>(init: Init<T>) { const ref = useRef<T | null>(null) if (ref.current === null) { ref.current = init() } return ref.current } |