Flowtype,React和defaultProps

时间:2018-04-01 13:39:07

标签: reactjs react-native flowtype

经过数小时的搜索和测试,我没有找到任何解决方案让流程理解defaultProps

请参阅Try Flow example

使用此模型无效:

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


class Letter extends PureComponent<PropsType> {

  static defaultProps = {
    size: 'small',
  }

}

由于

修改

在Tomasz Mularczyk的建议之后,我创建了another Try Flow example

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

而不是

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

但是

defaultProp size不再输入:

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

解决方案

见Tomasz Mularczyk的回答

+

不要等待当前组件的流错误(在我的情况下),但是它将被导入和声明的位置。(似乎是半静态的没有?)

1 个答案:

答案 0 :(得分:5)

只需从?类型中删除size即可。 Flow会自动看到您创建了defaultProps并且不需要它。

来自docs:

  

要键入默认道具,请将静态defaultProps属性添加到您的   类。

...

  

React还支持无状态功能组件的默认道具。   类组件类似,无状态功能的默认道具   组件将在没有任何额外类型注释的情况下工作。