React $ Element和ReactElement之间有什么不同

时间:2017-06-05 17:16:34

标签: javascript reactjs flowtype flow-typed

我正在尝试使用ReactJS的流程。我需要为道具儿童添加类型。文章(https://flow.org/en/docs/frameworks/react/)没有说明任何内容。

我发现很多使用ReactElement的例子(例如https://github.com/facebook/flow/issues/1964)。但是流量说identifier ReactElement. Could not resolve name。我使用React $ Element< *>它有效。

问题。 React $ Element和ReactElement有什么不同?我在哪里可以找到有关React $ Element的信息?流搜索类型定义在哪里。

1 个答案:

答案 0 :(得分:0)

React$Element目前位于与Flow(https://github.com/facebook/flow/blob/02e59773c2941fc05492d551c59f4929e12908d0/lib/react.js#L109-L119)捆绑在一起的'react.js'库文件中:

/**
 * Type of a React element. React elements are commonly created using JSX
 * literals, which desugar to React.createElement calls (see below). The type
 * parameterization of React$Element mimics that of ReactClass (see above).
 */
declare class React$Element<Config> {
  type: ReactClass<Config>;
  props: $PropsOf<Config>;
  key: ?string;
  ref: any;
}

Flow团队在flowtype/flow-typed repo博文中提到,最终可能会转移到新的Introducing Flow Typed。如果您需要从NPM安装的库的定义,那么'flow-typed'就是您要查看的位置。