我想确保数组属性的每个元素都符合特定的形状. 这与React proptype array with shape中回答的问题不同.他们测试了每个元素是否与给定的预定义React proptype验证器匹配,在这种情况下是React.pr
这与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, }) } }
这会触发警告:propType失败:typeChecker不是函数检查render方法
你很接近,但你需要指定数组是什么类型的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了.