转换道具的HOC的正确流类型

时间:2018-09-24 08:52:43

标签: javascript reactjs flowtype

我有一个使用Form道具的零件{ data: ?RecordType, onSave: RecordType => void}。 我想将其包装在一个HOC中,该HOC将接受一个额外的道具{id: string}并将一个道具data注入包装的组件中。 我将如何键入此类组件?

export function withOneDetails<
  RecordType: {},
  DefaultProps: {},
  ReceivedProps: { id: string },
  AddedProps: { data: ?RecordType },
  InnerProps: DefaultProps & AddedProps,
  OuterProps: DefaultProps & ReceivedProps
>(
  Comp: React.ComponentType<InnerProps>
): React.ComponentType<OuterProps> {
  return props => {
    ... call api
    return (
      <Comp {...props} data={data} />
    );
  }
}

const EditForm = withOneDetails(Form);

const b = () => <Form />
const a = () => <EditForm />

在最后一行(const a)上,我想收到未提供idonSave的流错误。但是我没有错误。

const b正确显示有关dataonSave丢失的错误。

0 个答案:

没有答案