react函数组件为了保持引用不变,很多时候需要借助useCallback,但是useCallback强依赖于外部变量,必须传个依赖变量,万一漏传了很容易出问题。比较函数复杂时较麻烦,使用这个即可完美解决,引用不变,调用肯定是最新的,并且不需依赖

just 记录方便cp

function usePersistCallback<T extends(...args: any[]) => any>(fn?: T) {
  const ref = useRef<T>();

  ref.current = fn;

  return useCallback<T>(
    // @ts-ignore
    (...args) => {
      const fn = ref.current;
      return fn && fn(...args);
    },
    [ref],
  );
}
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐