tl; dr 我有什么办法可以告诉eslint
,它应该根据我选择的规则来测试特定功能?
对于上下文,我最近安装了eslint-plugin-react-hooks
规则。它检查挂钩是否仅在功能组件内部创建。
function Component(props) {
const [state, setState] = React.useState(false); // passes the linter
// ...
}
class Component extends React.Component {
render() {
const [state, useState] = React.useState(false); // fails the linter
// ...
}
}
我已经创建了一个调用React.useState
的实用程序函数,但是该实用程序函数在功能组件内部被调用。
// utility function
function makeHook(init) {
const [state, setState] = React.useState(init); // fails linter (as expected)
return { state, setState };
}
function Component {
const hookObj = makeHook(false); // NOT CHECKED BY LINTER
// ...
}
我想以某种方式装饰makeHook
,让eslint知道检查它的使用,就好像是React.useState
调用一样。