javascript - 跟踪更改对象的自定义钩子
问题描述
我在 React 中编写了一个自定义钩子(我称之为 useChanges),它有望跟踪更改的对象。它采用三个参数(更改对象的初始数组、对象的原始数组、选择器函数,该函数选择对象的属性,该属性在其他对象中具有唯一值)。
请参阅此处的工作示例:https ://codesandbox.io/s/compassionate-murdock-ey8zx
使用自定义钩子的方式是使用具有一个输入和一个文本区域(受控组件)的表单。每当用户输入输入或文本区域时,值都存储在状态中。此外,我对整个表单状态使用去抖动功能,并且每当去抖动表单值发生变化时,我都会在 useEffect 中运行一段代码。在这段代码中,我调用了自定义钩子提供的函数 applyChanges。
问题是当我将所有建议的依赖项包含到 useEffect 时。目前我在依赖数组中只有 debouncedValues 。但是 ESLint 告诉我还包括 getChangedItemAndOriginalItem 函数和 applyChanges 函数。如果我包含它们,则会导致无限循环,并且组件永远不会停止重新渲染。
我试图记住自定义钩子中的两个函数,但它没有帮助,因为 ESLint 规则抱怨自定义钩子中缺少依赖项。
有没有办法以某种方式更改我的代码,以便让 ESLint 满意?
解决方案
推荐阅读
- heroku - 在更新时将文件提交到 github
- c - 如果 argc 仅采用一个参数,则会出现分段错误错误。当 IF 在 WHILE 之前时,这不会发生
- powershell - powershell 可以用来查看类似于get-aduser "user" -property * 命令的内部URL的记录吗
- google-cloud-platform - Google Cloud NVIDIA Marketplace 解决方案开箱即用失败
- r - 分组条形图 R
- java - 如果没有 Google 横幅广告,是否显示 start.io 横幅广告?
- python-3.x - Pandas 根据值和顺序插入缺失的行
- docker - 如何在 Windows 中启动 docker 守护进程(使用 WSL 2)?
- python-3.x - 尝试从 .h5 文件访问数据集时出现“TypeError:TypeTimeID 没有 NumPy 等效项”
- python - 移动全局 .vscode 文件夹并在 VScode 中更新路径