未找到规则“react-hooks/exhaustive-deps”的定义
Posted
技术标签:
【中文标题】未找到规则“react-hooks/exhaustive-deps”的定义【英文标题】:Definition for rule 'react-hooks/exhaustive-deps' was not found 【发布时间】:2020-04-23 23:31:40 【问题描述】:在我的代码中添加 // eslint-disable-next-line react-hooks/exhaustive-deps
后出现以下 eslint 错误。
8:14 找不到规则“react-hooks/exhaustive-deps”的定义
我参考了this 的帖子来解决这个问题,但提到的解决方案在我的情况下不起作用。任何线索如何抑制这个 eslint 错误?
PS 我正在使用standardjs。
【问题讨论】:
【参考方案1】:这通常是因为.eslintrc
插件配置中缺少react-hooks
插件。确保您已添加 react-hooks
,如下例所示:
"plugins": ["react", "react-hooks",],
【讨论】:
这确实应该被认为是公认的答案。 如果我没有 .eslintrc 我可以创建一个 .eslintrc 文件并在其中添加 "plugins": ["react", "react-hooks",] 吗?我应该把它放在哪个目录?【参考方案2】:确保你像这样在扩展和插件数组中定义你的 react-hooks
"extends": [
"react-hooks",
],
"plugins": [
"react-hooks"
],
【讨论】:
这给我造成了一个错误:Failed to load plugin 'react-hook' declared in '.eslintrc.js': Cannot find module 'eslint-plugin-react-hook'
这是不正确的。不要扩展。遵循官方指南:reactjs.org/docs/hooks-rules.html【参考方案3】:
不是完美的解决方案,而是不断变化:
// eslint-disable-next-line react-hooks/exhaustive-deps
到:
// eslint-disable-next-line
抑制了该错误。
【讨论】:
我建议不要使用// eslint-disable-next-line
,因为这将完全禁用下一行的所有 ESLint 规则。
同意,禁用应始终尽可能具体到真正需要禁用的规则。这不应被视为解决方案。
这不应该是公认的答案。这是一个非常糟糕的建议,尤其是对于这个 lint 问题。【参考方案4】:
确保您已将规则放入您的.eslintrc
的rules
对象中。单独安装插件不足以让规则开始工作
"react-hooks/exhaustive-deps": "warn",
我假设您已经将react-hooks
插件添加到.eslintrc
中的plugins
数组中
【讨论】:
"react-hooks/exhaustive-deps": "off"
或 "react-hooks/exhaustive-deps": 0
是否可以全局禁用?
嘿,Taylor,是的,“off”和 0 都应该可以禁用规则。在这种情况下,这取决于您所说的“全局”。如果 eslint 配置在您的应用程序文件夹中,那么它将为应用程序工作区关闭它,如果它是全局配置并在许多项目中使用,它将全局禁用它【参考方案5】:
假设您正在使用 vscode 并且您的 package.json 中有必要的包,例如
"eslint-plugin-react-hooks": "^4.3.0",
在你的eslintrc.js
其他答案的建议是什么,那么您可能只需要重新启动
ESLint: Restart ESLint Server
来自
cmd/ctrl + shift + P
【讨论】:
以上是关于未找到规则“react-hooks/exhaustive-deps”的定义的主要内容,如果未能解决你的问题,请参考以下文章
未找到规则“react/require-extension”的定义
Azure 存储。得到 403 [url](未启用 CORS 或未找到此请求的匹配规则。)