reactjs - 为什么函数依赖项的处理方式与其他依赖项不同?
问题描述
如果我有:useCallback(() => setData(props.data), [])
然后详尽的部门会要求我将props.data添加到依赖项。
但是,如果我有:useCallback(() => setData(props.getData()), [])
然后详尽的部门会要求我向依赖项添加道具,并告诉我应该解构它,因为道具会改变每次渲染。
所以我的问题是,如果它适用于非功能道具,为什么我不能将props.getData添加到我的依赖项中?
解决方案
这可能是 JavaScript 分配内存的方式。
当您创建变量时,例如const x = 'myString'
JavaScript 将为字符串分配内存,它对对象、数字和函数的处理方式不同,这些都被视为“可调用对象”。
因此,通过将 props.getData 解构为const { getData } = props
,您所做的是为 getData 创建一个新指针,这意味着将其添加为依赖项,它将独立于 props 处理。
推荐阅读
- c# - XmlSerializer 序列化空/空字符串
- auth0 - Auth0 卡在回调中
- android - gradle.build Android Kotlin with 一尘不染和 ktlint
- typescript - 从 ConstructorParameters 获取第 n 个参数类型
- typo3 - DatabaseRowsUpdateWizard 上的 TYPO3 升级向导失败
- vue.js - 使用 v-for 动态渲染图像?
- ruby-on-rails - 如何翻译 ActiveStorage 属性
- javascript - 为什么调用不带参数的函数时会出现未定义的错误?
- machine-learning - scikitlearn 删除频率较低的分类类
- python - Web Scraping Asp.NET 网站使用 Beautiful Soup 和 Python