我有几个应用程序使用的组件库,我使用回调作为 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]);
}