Reactjs 如何将'eslint plugin react hooks'导出为'default'的lint功能组件?

Reactjs 如何将'eslint plugin react hooks'导出为'default'的lint功能组件?,reactjs,eslint,react-hooks,typescript-eslint,Reactjs,Eslint,React Hooks,Typescript Eslint,我特意创建了一个简单的函数组件,它打破了钩子的规则。它包含以下代码段 if (Math.rand > 0.5) { const [name, setName] = useState("fred"); } 我希望eslint插件能够消除这个明显的错误,但事实并非如此。在试图弄清这一点之后,我发现当我将一个函数作为默认值导出时,linter并不能完成它的任务。(我正在使用@typescript eslint/parser,这是值得的) 有没有办法让后一种语法与eslint/e

我特意创建了一个简单的函数组件,它打破了钩子的规则。它包含以下代码段

  if (Math.rand > 0.5) {
    const [name, setName] = useState("fred");
  }
我希望
eslint插件
能够消除这个明显的错误,但事实并非如此。在试图弄清这一点之后,我发现当我将一个函数作为默认值导出时,linter并不能完成它的任务。(我正在使用
@typescript eslint/parser
,这是值得的)

有没有办法让后一种语法与
eslint
/
eslint-plugin-react-hooks
一起使用,或者我必须始终创建一个命名的功能组件,然后运行
导出默认名称在函数下面


所以。。。我刚刚发现这是一个已知的
eslint-plugin-react-hooks
错误。似乎您需要为插件提供一个命名函数来捕获并过滤您的错误。(特别是
“react hooks/rules of hooks”
规则)。

您的代码违反了hooks规则,在此规则下,只能在代码的顶层调用hook。它不能放在if…else语句中。查看此处的钩子规则:

从线程中的注释中,您似乎找到了解决此问题的方法。您是否可以更新您的答案以包含解决方法,并可能接受答案作为解决方案?