我知道我可以禁用该文件或禁用该行,但我现在想要全局地这样做,这样我就不必在每次想要使用useEffect
作为componentDidMount()
时都写入它。
我试过了:
{
"plugins": [
// ...
"react-hooks"
],
"rules": {
// ...
"react-hooks/rules-of-hooks": "off"/0, // tried each
"react-hooks/exhaustive-deps": "off"/0 // tried each
},
"overrides": [
{
"files": ["**/*.js"],
"rules": {
"react-hooks/rules-of-hooks": "off"/0, // tried each
"react-hooks/exhaustive-deps": "off"/0 // tried each
}
}
]
}
发布于 2020-10-28 08:58:26
我在使用useEffect和componentDidMount()
时遇到了同样的“问题”。您可以忽略该警告,在项目根目录中添加文件.eslintrc.json
里面是这样的(这对我很有效):
{
"overrides": [
{
"files": ["**/*.js"],
"rules": {
"react-hooks/exhaustive-deps": "off"
}
}
]
}
发布于 2021-03-05 02:29:24
我们一直在寻找一种方法来在整个项目中禁用这个规则,因为试图修复它的人不断引入无限循环错误,通常是那些擅长隐藏的错误,直到正确的变量组合出现。
该规则基本上做了一个激进的假设,即传递给useEffect()的函数中根本没有任何设计或思想。如果有一个if/else代码块在缺少依赖项的情况下从另一个依赖项中计算出一个依赖项,那么正确处理它的工作,盲目地将两个变量都添加到依赖项数组中很可能会触发无限循环。
我们总是可以告诉每个人在整个项目中添加eslint-ignore行,但这是我们在关闭时遇到的唯一问题。(这个特定的项目在package.json中有ESLint配置,因为它使用了react脚本,我们试图在"rules“块中通过将其设置为" off”来关闭它。我不知道这是否也是.eslintrc文件的问题。)
发布于 2021-04-28 18:13:45
如果您的useEffect在jsx文件中,则必须使用文件扩展名jsx,因此覆盖将如下所示
{
"overrides": [
{
"files": ["**/*.jsx"],
"rules": {
"react-hooks/exhaustive-deps": "off"
}
}
]
}
https://stackoverflow.com/questions/63974832
复制相似问题