web-dev-qa-db-ja.com

Flowtype、ReactおよびdefaultProps

何時間もの検索とテストの後、フローにdefaultPropsを理解させるための解決策を見つけることができませんでした

参照 トライフローの例

このモデルの使用には一貫性がありません。

type PropsType = {|
  size?: 'small' | 'big',
|};


class Letter extends PureComponent<PropsType> {

  static defaultProps = {
    size: 'small',
  }

}

ありがとう

編集する

Tomasz Mularczykの提案に従って、 別のトライフローの例 を作成しました。

type PropsType = {|
  size: 'small' | 'big',
|};

の代わりに

type PropsType = {|
  size?: 'small' | 'big',
|};

しかし

defaultProp sizeが入力されなくなりました:

static defaultProps = {
  size: 'BAD DEFAULT PROPS', // no error (?!)
}

解決

Tomasz Mularczykの回答を見る

+

現在のコンポーネント(私の場合)のフローエラーを待たずに、どこにインポートして宣言するかを決めます(準静的なようです)。

10
Made in Moon

削除するだけ? from sizeタイプ。 Flowは自動的にdefaultPropsを作成したことを確認し、それを必要としません。

から docs:

デフォルトの小道具を入力するには、静的なdefaultPropsプロパティをクラスに追加します。

...

Reactは、ステートレス機能コンポーネントのデフォルトの小道具もサポートしています。クラスコンポーネントと同様に、ステートレス機能コンポーネントのデフォルトの小道具は、追加の型注釈なしで機能します。

7