我正在为提供我们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组件。显然,我在指定类的方式上做错了-但我不知道该写些什么。
任何帮助将不胜感激!
答案 0 :(得分:0)
Flow在0.89.0中实现了React.AbstractComponent
,以帮助编写HOC。签出documentation for writing HOCs。