首页 > 解决方案 > 有没有办法将默认值设置为所需道具的子道具?

问题描述

我想将默认值设置为size道具,但它是必需道具的子级,所以我得到错误。除了禁用 eslint 中的规则外,还有其他解决方法吗?

static propTypes = {
        widget: PropTypes.shape({
            config: PropTypes.shape({
                size: PropTypes.string
            }).isRequired
        }).isRequired,
    };
static defaultProps = {
        widget: PropTypes.shape({
            config: PropTypes.shape({
                size: 's'
            })
        })
    }

错误

defaultProp "widget" defined for isRequired propType.eslint(react/default-props-match-prop-types)

标签: javascriptreactjsreact-proptypes

解决方案


首先观察你可以像这样简单地设置默认值:

widget: {
config: {size: 's'}
}

其次,根据错误,没有必要为必填字段设置默认值,因为当调用者未通过defaultProps

因此,也许将widgetpropTypes 设置为可选,那么错误不应该存在,但是当通过 props 传入无效形状时,形状会保持不变


推荐阅读