2

在我的项目中,我摆脱了类,我只是使用 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.

有什么线索吗?我真的很感激任何建议

4

2 回答 2

2

给你两个选择。

  1. 尊重 hooks 的规则,修改你的代码。

    const myCurryFunction = WrappedComponent => function Comp(props) { const [state, setState] = React.useState(); 返回 }

  2. 关闭源文件的 lint。
于 2020-03-06T06:28:10.057 回答
1

我发现了这个 github 问题: https ://github.com/facebook/react/issues/20531

HOC 模式应该可以工作,但非常具体。

于 2021-03-03T19:37:02.867 回答