我正在尝试使用PropTypes进行复杂的验证,但是我不太想弄清楚它。
当前的道具类型:
Map.propTypes = {
locations: PropTypes.arrayOf(
PropTypes.shape({
latitude: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
.isRequired,
longitude: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
.isRequired
})
)
}
如果未提供locations
道具,则仍将纬度和经度标记为必需。我想这是意料之中的。
如果需要提供纬度和经度,我希望仅提供位置道具。
我尝试为location属性做一个自定义功能,但是由于它具有复杂的验证(arrayOf
,shape
和oneOfType
),所以我不想自己重新实现这些方法。