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语句中。查看此处的钩子规则:从线程中的注释中,您似乎找到了解决此问题的方法。您是否可以更新您的答案以包含解决方法,并可能接受答案作为解决方案?