React.useCallback:我是否需要在依赖项数组中传递函数以及依赖项?

时间:2019-12-19 21:16:48

标签: javascript reactjs react-hooks

React docs示例仅显示[a, b]作为依赖项。函数doSomething未传递。

const memoizedCallback = useCallback(
  () => {
    doSomething(a, b);
  },
  [a, b],
);

但是后来的文档显示为:

  

回调中引用的每个值也应出现在依赖关系数组中。

我的问题:我还需要通过doSomething吗?

const memoizedCallback = useCallback(
  () => {
    doSomething(a, b);
  },
  [a, b, doSomething],
);

1 个答案:

答案 0 :(得分:1)

从技术上讲,如果它没有更改,则不是必需的,但是它可以带来意外的行为,因此,为简单起见,如果它在组件中声明或来自props,则需要将内部使用的所有内容传递给内部。另外,如果您使用的是eslint,则钩子plugin确实是标准的