我想将默认值设置为size
prop,但是它是必需prop的子元素,因此出现错误。除了在eslint中禁用规则以外,是否有其他解决方法?
static propTypes = {
widget: PropTypes.shape({
config: PropTypes.shape({
size: PropTypes.string
}).isRequired
}).isRequired,
};
static defaultProps = {
widget: PropTypes.shape({
config: PropTypes.shape({
size: 's'
})
})
}
Eslint错误
defaultProp "widget" defined for isRequired propType.eslint(react/default-props-match-prop-types)
答案 0 :(得分:0)
第一次观察,您可以像这样简单地设置默认值:
widget: {
config: {size: 's'}
}
第二,根据错误,没有必要为必填字段设置默认值,因为当调用者未通过defaultProps
提供此字段时,必须并且必须设置默认值。
因此,也许将widget
propTypes设置为可选,然后错误就不会出现,但是当通过prop传递无效形状时,形状就得以保留