为什么功能依赖项与其他依赖项区别对待?

时间:2019-11-25 11:26:09

标签: reactjs react-hooks eslint

如果我有:useCallback(() => setData(props.data), [])

然后详尽的部门将要求我将 props.data 添加到依赖项。

但是,如果我有:useCallback(() => setData(props.getData()), [])

然后详尽的部门将要求我将 道具 添加到依赖项,并且还告诉我应该对其进行重构,因为道具会更改每个渲染。

所以我的问题是,为什么不能对我的依赖项添加 props.getData

1 个答案:

答案 0 :(得分:1)

这可能就是JavaScript分配内存的方式。

创建变量时,例如const x = 'myString' JavaScript将为字符串分配内存,它对对象,数字和被视为“可调用对象”的函数的处理方式有所不同。

因此,通过将props.getData解构为const { getData } = props,您正在做的是为getData创建新的指针,这意味着将其添加为依赖项将独立于props处理。