如果我有:useCallback(() => setData(props.data), [])
然后详尽的部门将要求我将 props.data 添加到依赖项。
但是,如果我有:useCallback(() => setData(props.getData()), [])
然后详尽的部门将要求我将 道具 添加到依赖项,并且还告诉我应该对其进行重构,因为道具会更改每个渲染。
所以我的问题是,为什么不能对我的依赖项添加 props.getData ?
答案 0 :(得分:1)
这可能就是JavaScript分配内存的方式。
创建变量时,例如const x = 'myString'
JavaScript将为字符串分配内存,它对对象,数字和被视为“可调用对象”的函数的处理方式有所不同。
因此,通过将props.getData解构为const { getData } = props
,您正在做的是为getData创建新的指针,这意味着将其添加为依赖项将独立于props处理。