在我的项目中,我摆脱了类,只使用 Hooks。现在,我正在尝试创建 HOC,但我的 linter 在我的 curry 函数中使用 Hooks 时返回错误。这是我的代码的简化版本:
const myCurryFunction = WrappedComponent => props => {
const [state, setState] = React.useState();
return <WrappedComponent {...props} />
}
完整的 eslint 错误是这个:
React Hook "useState" cannot be called inside a callback. React Hooks must be called in a React function component or a custom React Hook function.
有什么线索吗?我真的很感激任何建议
我发现了这个github问题: https://github.com/facebook/react/issues/20531
HOC 模式应该可行,但非常具体。
两种选择供您选择。
尊重 hooks 规则,更改你的代码。
const myCurryFunction = WrappedComponent => function Comp(props) {
const [state, setState] = React.useState();
return <WrappedComponent {...props} />
}
关闭源文件的 lint。