为HOC编写流程libdef

问题描述 投票:2回答:1

我正在为一个为我们提供HOC的库编写库定义。 HOC的实施如下:

const withValidation = TargetComponent => class extends React.Component {
  onSubmit: () => { ... }
  getFormData: () => { ... }
  getErrors: () => { ... }
  setField: diff => { ... }
  resetState: () => { ... }
  render () { return <TargetComponent ... /> }
}

我想编写一个库定义,指定从HOC返回的组件具有上面列出的实例方法。由于该组件的工作方式,它可以通过ref访问,这是我希望这些组件出现的地方。

我已经尝试为返回的组件编写一个libdef - 这是相关的部分:

declare class WithValidation<FormConfig> extends React$Component {
  onSubmit: () => boolean;
  getFormData: () => {
    [key: string]: string,
  };
  setField: (diff: {}) => void;
  getErrors: () => { [key: string]: string | null };
  resetState: () => void;
}

这给了我一些错误,表明我的包装组件不是React组件。显然我在指定类的方式上做错了 - 但是我无法弄明白我应该写什么。

任何帮助将非常感谢!

javascript reactjs flowtype static-typing flow-typed
1个回答
0
投票

Flow在0.89.0中实施了React.AbstractComponent以帮助编写HOC。看看documentation for writing HOCs

© www.soinside.com 2019 - 2024. All rights reserved.