语法:
const memoizedCallback = useCallback(() => {setValue(value);}, [value]);
类型声明:
export function useCallback<T>(callback: T, deps: Array<mixed> | void | null): T {const dispatcher = resolveDispatcher();return dispatcher.useCallback(callback, deps);}
说明:
memoized
回调函数useCallback
,它将返回该回调函数的 memoized
版本,该 回调函数仅在某个依赖项改变时才会更新。当你把回调函数传递给经过优化的并使用 引用相等性 去避免非必要渲染(例如 shouldComponentUpdate
)的子组件时,它将非常有用。useCallback(fn, deps)
相当于 useMemo(() => fn, deps)
。⚠️ 注意:
eslint-plugin-react-hooks
中的 exhaustive-deps
规则。此规则会在添加错误依赖时发出警告并给出修复建议。