Javascript React.useCallback:我是否需要将依赖项数组中的函数与依赖项一起传递?
React docs示例仅将Javascript React.useCallback:我是否需要将依赖项数组中的函数与依赖项一起传递?,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,React docs示例仅将[a,b]显示为依赖项。未传递函数doSomething const memoizedCallback = useCallback( () => { doSomething(a, b); }, [a, b], ); 但后来的文件写道: 回调中引用的每个值也应该出现在dependencies数组中 我的问题:我是否也需要通过doSomething const memoizedCallback = useCallback( () =>
[a,b]
显示为依赖项。未传递函数doSomething
const memoizedCallback = useCallback(
() => {
doSomething(a, b);
},
[a, b],
);
但后来的文件写道:
回调中引用的每个值也应该出现在dependencies数组中
我的问题:我是否也需要通过doSomething
const memoizedCallback = useCallback(
() => {
doSomething(a, b);
},
[a, b, doSomething],
);
从技术上讲,如果它不改变,就不需要它,但它可能会带来意外的行为,所以为了简单起见,如果它是在组件中声明的或来自道具,您需要传递您在其中使用的所有东西。另外,如果您使用的是eslint,那么钩子就非常棒,这是事实上的标准如何定义
doSomething
?它会改变吗?如果doSomething
在组件或自定义挂钩中定义,或者作为参数传递,则为是。如果它是在函数范围之外定义的,则否。