什么是React.PropTypes.node的Flow等价物?

时间:2016-11-28 15:41:30

标签: javascript reactjs types flowtype

什么是React.PropTypes.node的等效流量(即React可以呈现的任何内容,如果有的话?我是否必须自己创建它作为联合类型?

换句话说,什么会取代???

type Props = {
  children: ???,
}

const UselessComponent
  : (props: Props) => React$Element<*>
  = ({ children }) => (
    <div>
      {children}
    </div>
  )

UselessComponent.propTypes = {
  children: React.PropTypes.node.isRequired,
}

2 个答案:

答案 0 :(得分:10)

看起来它仍然是一个问题here

根据该问题的讨论,在修复之前你应该做些什么:

type Props = {
  children?: React.Element<*>,
};

答案 1 :(得分:9)

对于flow&gt; = 0.53的版本,请为props.children和您期望可渲染节点的任何位置使用新类型React.Node

  

React.Node的定义可以粗略地用a近似   React.ChildrenArray:

type Node = React.ChildrenArray<void | null | boolean | string |
number | React.Element<any>>;

流量0.53中的反应类型进行了重大修改。有关如何迁移的更改和说明的摘要位于release notes。  flow docs详细解释了如何使用。

例如:

import type { Node } from 'react';

type Props = {
  input?: Node,
}