在子组件中使用 useCallback 进行父回调

问题描述 投票:0回答:0

我有几个应用程序使用的组件库,我使用回调作为 useEffect 中的 prop 传入。是否可以将其包装在该子组件的 useCallback 中以防万一父组件没有?而且父母也不需要。

const Parent = () => {
  const cb = () => { ... };
  return <Widget condition={true} callback={cb} />
};

const Widget = ({condition, callback}) => {
  const safeCallback = useCallback(callback, [callback]);
  useEffect(() => {
     safeCallback();
  }, [condition, safeCallback]);
}

如果父母确实使用了 useCallback,并且它发生了两次怎么办?

const Parent = () => {
  const cb = () => { ... };
  const safeCb = useCallback(cb, [cb]);
  return <Widget condition={true} callback={safeCb} />
};

const Widget = ({condition, callback}) => {
  const safeCallback = useCallback(callback, [callback]);
  useEffect(() => {
     safeCallback();
  }, [condition, safeCallback]);
}
javascript reactjs react-hooks memoization
© www.soinside.com 2019 - 2024. All rights reserved.