错误:ESLint react-hooks/exhaustive-deps规则对使用常量表达式生成的常量进行误报

6fe3ivhb  于 2022-10-28  发布在  React
关注(0)|答案(1)|浏览(158)

React版本:第16.14.0和17.0.2版

重现步骤

1.使用仅由常数组成的表达式创建常量变量。
1.运行ESLint
程式码范例:

const a = 1
const b = 2 / 3
const c = -1
const d = +1

useEffect(() => {
  void a
  void b
  void c
  void d
}, [])

程式码沙箱:https://codesandbox.io/s/funny-wilson-33zxb的最大值

当前行为

我看到以下ESlint警告:
React Hook useEffect缺少依赖项:“b”、“c”和“d”。请包含它们或删除依赖项数组。(react-hooks/exhaustive-deps)

预期行为

我没看到警告。
在我的示例中,ESlint警告中跳过了a变量,但没有跳过其他三个变量,即使它们都是常量表达式。

h9vpoimq

h9vpoimq1#

感谢您的反馈。
我想这对文字来说是有意义的。
但是,您也可以将它们移到模块范围中,以实现相同的功能:

const a = 1
const b = 2 / 3
const c = -1
const d = +1

function TestComponent() {

  useEffect(() => {
    void a
    void b
    void c
    void d
  }, [])

  return <></>
}

相关问题