React docs示例仅显示[a, b]
作为依赖项。函数doSomething
未传递。
const memoizedCallback = useCallback(
() => {
doSomething(a, b);
},
[a, b],
);
但是后来的文档显示为:
回调中引用的每个值也应出现在依赖关系数组中。
我的问题:我还需要通过doSomething
吗?
const memoizedCallback = useCallback(
() => {
doSomething(a, b);
},
[a, b, doSomething],
);
答案 0 :(得分:1)
从技术上讲,如果它没有更改,则不是必需的,但是它可以带来意外的行为,因此,为简单起见,如果它在组件中声明或来自props,则需要将内部使用的所有内容传递给内部。另外,如果您使用的是eslint,则钩子plugin确实是标准的