需要PropTypes形状(如果提供了prop)

时间:2019-04-08 15:07:42

标签: reactjs react-proptypes

我正在尝试使用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属性做一个自定义功能,但是由于它具有复杂的验证(arrayOfshapeoneOfType),所以我不想自己重新实现这些方法。

0 个答案:

没有答案