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

时间:2015-12-22 21:38:43

标签: properties reactjs

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

这与React proptype array with shape中回答的问题不同。他们测试了每个元素是否与给定的预定义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,
    })
  }
}

这会触发警告:Failed propType: typeChecker is not a function Check the render method

1 个答案:

答案 0 :(得分:5)

你很接近,但你需要指定数组的类型,React.PropTypes.shape让你指定一个带有键及其类型的对象。

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

提示:执行import React, { PropTypes } from 'react',以便您可以使用PropTypes.