流类型,React和defaultProps

Mad*_*oon 8 reactjs flowtype react-native

经过数小时的搜索和测试,我没有成功找到任何使流程理解默认值的解决方案

请参阅“ 尝试流程”示例

使用此模型是不合适的:

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


class Letter extends PureComponent<PropsType> {

  static defaultProps = {
    size: 'small',
  }

}
Run Code Online (Sandbox Code Playgroud)

谢谢

编辑

在Tomasz Mularczyk的建议之后,我创建了另一个Try Flow示例,其中包括:

type PropsType = {|
  size: 'small' | 'big',
|};
Run Code Online (Sandbox Code Playgroud)

代替

type PropsType = {|
  size?: 'small' | 'big',
|};
Run Code Online (Sandbox Code Playgroud)

size不再输入defaultProp :

static defaultProps = {
  size: 'BAD DEFAULT PROPS', // no error (?!)
}
Run Code Online (Sandbox Code Playgroud)

查看Tomasz Mularczyk的答案

+

不要等待当前组件上的流错误(在我的情况下),但是要在哪里导入和声明它(似乎是半静态的吗?)

Tom*_*zyk 5

只需?size类型中删除即可。Flow将自动看到您创建的内容,defaultProps并且不需要它。

文档:

要输入默认道具,请向您的类添加静态defaultProps属性。

...

React还支持无状态功能组件上的默认道具。与类组件类似,无状态功能组件的默认道具无需任何额外的类型注释即可使用。