不显示React PropTypes

时间:2017-05-26 14:19:50

标签: reactjs

我有这些PropTypes设置:

Select.propTypes = {
  onSelect: PropTypes.func.isRequired,
  data: PropTypes.arrayOf(PropTypes.shape({
     key: PropTypes.string.isRequired,
     value: PropTypes.string.isRequired
   }).isRequired).isRequired
}
如果未定义,

onSelectdata都会显示错误。但是,数组中对象的形状不是验证。我可以使用data={[]}并且它没有错误。

我有什么东西在这里失踪吗?谢谢

1 个答案:

答案 0 :(得分:1)

我认为这是预期的。当prop是必需的数组时,您可以传递空数组或具有给定类型元素的数组。不仅对于形状,即使对于PropTypes.arrayOf(PropTypes.number).isRequired,它也会将[][9]视为有效,而不是["9"]。它没有'即使您使用PropTypes.arrayOf(PropTypes.number.isRequired).isRequired也要进行更改。

基本上,您不能指定应该在数组中的最小元素数量,或者限制使用prop类型指定空数组。