According to this [page](https://reactjs.org/docs/hooks-reference.html#usecallback) `useCallback(fn, inputs)` is equivalent to `useMemo(() => fn, inputs)` I suggest another one (implemented with current hooks): ```javascript function useHandler(handler) { const holder = useRef(); holder.current = handler; // TODO: avoid useMemo? return useMemo( () => function(...args) { return holder.current.apply(this, args); }, [] ); } ``` It has advantages: * no need to specify `inputs`, latest instance of `handler` will be called * result of `useHandler` is constant for all rerenders