![](/img/trans.png)
[英]React, ESLint: eslint-plugin-react-hooks dependency on a function in an object
[英]How can I get `eslint-plugin-react-hooks` to lint functional components that are exported as `default`?
我特意创建了一个简单的函数式组件,打破了钩子的规则。 它包含以下代码段。
if (Math.rand > 0.5) {
const [name, setName] = useState("fred");
}
我希望eslint-plugin-react-hooks
会发现这个明显的错误,但事实并非如此。 在尝试深入了解之后,我发现当我将函数导出为默认值时 - linter 并没有这样做。 (我正在使用@typescript-eslint/parser
来获得它的价值)。
有没有办法让后一种语法与eslint
/ eslint-plugin-react-hooks
,或者我必须始终创建一个命名的功能组件,然后运行export default name;
在功能之下?
所以......我刚刚发现这是eslint-plugin-react-hooks
一个已知错误。 似乎您需要为插件提供一个命名函数来捕获和整理您的错误。 https://github.com/facebook/react/issues/14404 (特别是"react-hooks/rules-of-hooks"
规则)。
您的代码违反了钩子规则,在该规则中,钩子只能在代码的顶层调用。 它不能放在 if...else 语句中。 在此处查看钩子规则: https : //reactjs.org/docs/hooks-rules.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.