web-dev-qa-db-ja.com

React.PropTypes.nodeに相当するフローは何ですか?

React.PropTypes.nodeに相当するFlowとは何ですか(つまり、Reactがあれば、Reactでレンダリングできるものは何ですか?自分で共用体型として作成する必要がありますか?

言い換えれば、ここで???を置き換えるものは何でしょうか?

type Props = {
  children: ???,
}

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

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

それはまだ問題のようです ここ

その問題の議論によると、それが修正されるまであなたがすべきこと:

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

フローのバージョンが0.53以上の場合、props.childrenおよびレンダリング可能なノードが必要な場所には新しいタイプReact.Nodeを使用します。

React.Nodeの定義は、React.ChildrenArrayで大まかに概算できます。

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

フロー0.53で反応タイプの大幅な手直しがありました。変更の概要と移行方法の説明は リリースノート にあります。 flow docs 使用方法を詳しく説明します。

例えば:

import type { Node } from 'react';

type Props = {
  input?: Node,
}
9
Derek Dahmer