diff options
Diffstat (limited to '')
| -rw-r--r-- | src/hooks/useStableCallback.ts | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/hooks/useStableCallback.ts b/src/hooks/useStableCallback.ts new file mode 100644 index 0000000..98e6c0d --- /dev/null +++ b/src/hooks/useStableCallback.ts @@ -0,0 +1,9 @@ +import {useCallback, useRef} from 'react'; + +export const useStableCallback = <Args extends any[], Ret>( + callback: (...a: Args) => Ret, +): ((...a: Args) => Ret) => { + const cb = useRef(callback); + cb.current = callback; + return useCallback((...args: Args) => cb.current(...args), [cb]); +}; |
