コード レビューを行っているときに、次のカスタム フックを見つけました。
import { useRef, useEffect, useCallback } from 'react'
export default function useLastVersion (func) {
const ref = useRef()
useEffect(() => {
ref.current = func
}, [func])
return useCallback((...args) => {
return ref.current(...args)
}, [])
}
このフックは次のように使用されます。
const f = useLastVersion(() => { // do stuff and depends on props })
基本的に、const f = useCallBack(() => { // do stuff }, [dep1, dep2])
これと比較して、依存関係のリストを宣言することを回避しf
、依存関係の 1 つが変更されても変更されません。
このコードについてどう考えるべきかわかりません。useLastVersion
と比較して使用することの欠点がわかりませんuseCallback
。