【问题标题】:Definition for rule 'react-hooks/exhaustive-deps' was not found未找到规则“re​​act-hooks/exhaustive-deps”的定义
【发布时间】:2020-04-23 23:31:40
【问题描述】:

在我的代码中添加 // eslint-disable-next-line react-hooks/exhaustive-deps 后出现以下 eslint 错误。

8:14 找不到规则“re​​act-hooks/exhaustive-deps”的定义

我参考了this 的帖子来解决这个问题,但提到的解决方案在我的情况下不起作用。任何线索如何抑制这个 eslint 错误?

PS 我正在使用standardjs

【问题讨论】:

    标签: javascript reactjs react-hooks eslint 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】:

    确保您已将规则放入您的.eslintrcrules 对象中。单独安装插件不足以让规则开始工作

    "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

    【讨论】:

      猜你喜欢
      • 2019-11-28
      • 2019-08-18
      • 2020-03-11
      • 2019-02-09
      • 2020-06-09
      • 2020-05-01
      • 2022-08-18
      相关资源
      最近更新 更多