【发布时间】:2017-09-06 18:08:04
【问题描述】:
我有一个接收badge 属性的组件(参见下面的示例)。徽章是可选的,但是一旦使用它,我希望它里面有一些必填字段。我尝试了以下方法:
Component.propTypes = {
badge: PropTypes.shape({
src: PropTypes.string.isRequired,
alt: PropTypes.string.isRequired,
}),
}
它可以工作,但是当我尝试在没有徽章的情况下使用它时,我在 Chrome 上收到此警告:
警告:失败的道具类型:道具
badge.src被标记为必需 在Component,但其值为null。
这样做的正确方法是什么?
组件使用示例:
badge={{ src: 'usa.png', alt: 'United States' }}
【问题讨论】:
-
您不应该将其声明为单独的(可选)组件,然后为该组件定义所需的道具吗?