useEvent
useEvent (useStableCallback, useCommittedCallback)
useEvent (useStableCallback, useCommittedCallback)function useLatestValue<T>(value: T) {
const cache = useRef(value);
// 실제 구현체에서는 Layout Effect보다 이른 시점에 호출될 것이다.
useIsomorphicLayoutEffect(() => {
cache.current = value;
}, [value]);
return cache;
}
function useEvent<
F extends (...args: any[]) => any,
P extends any[] = Parameters<F>,
R = ReturnType<F>
>(cb?: (...args: P) => R) {
const cache = useLatestValue(cb);
return useCallback(
(...args: P) => cache.current?.(...args),
[cache]
);
}참고 자료
Last updated