Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Properties 确保数组属性的每个元素符合React中的自定义形状_Properties_Reactjs - Fatal编程技术网

Properties 确保数组属性的每个元素符合React中的自定义形状

Properties 确保数组属性的每个元素符合React中的自定义形状,properties,reactjs,Properties,Reactjs,我想确保数组属性的每个元素都符合特定的形状 这与中回答的问题不同。他们测试了每个元素是否都匹配给定的预定义React-proptype验证器,在这种情况下,React.propTypes.number。我感兴趣的是针对自定义对象形状进行测试 例如: class MyClass extends React.Component { constructor(props) { super(props); } static propTypes = { data: React.

我想确保数组属性的每个元素都符合特定的形状

这与中回答的问题不同。他们测试了每个元素是否都匹配给定的预定义React-proptype验证器,在这种情况下,React.propTypes.number。我感兴趣的是针对自定义对象形状进行测试

例如:

class MyClass extends React.Component {
  constructor(props) {
    super(props);
  }

  static propTypes = {
    data: React.PropTypes.arrayOf({
      name: React.PropTypes.string,
      year: React.PropTypes.number,
    })
  }
}

这会触发一个警告:
失败的propType:typeChecker不是一个函数检查渲染方法

您已经接近了,但是您需要指定数组的propType类型,并且
React.PropTypes.shape
让我们来指定一个带有键及其类型的对象

static propTypes = {
  data: React.PropTypes.arrayOf(
    React.PropTypes.shape({
      name: React.PropTypes.string,
      year: React.PropTypes.number,
    })
  )
}
提示:从“React”导入React,{PropTypes},这样您就可以使用
PropTypes了。