Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React.useCallback:我是否需要将依赖项数组中的函数与依赖项一起传递?_Javascript_Reactjs_React Hooks - Fatal编程技术网

Javascript React.useCallback:我是否需要将依赖项数组中的函数与依赖项一起传递?

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( () =>

React docs示例仅将
[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
在组件或自定义挂钩中定义,或者作为参数传递,则为是。如果它是在函数范围之外定义的,则否。