经过数小时的搜索和测试,我没有找到任何解决方案让流程理解defaultProps
使用此模型无效:
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的回答
+
不要等待当前组件的流错误(在我的情况下),但是它将被导入和声明的位置。(似乎是半静态的没有?)
答案 0 :(得分:5)
只需从?
类型中删除size
即可。 Flow会自动看到您创建了defaultProps
并且不需要它。
来自docs:
要键入默认道具,请将静态defaultProps属性添加到您的 类。
...
React还支持无状态功能组件的默认道具。 类组件类似,无状态功能的默认道具 组件将在没有任何额外类型注释的情况下工作。