我想确保数组属性的每个元素都符合特定的形状。
这与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
答案 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.