我想确保数组属性的每个元素都符合特定的形状.
这与具有形状的React proptype数组中回答的问题不同.他们测试了每个元素是否与给定的预定义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
你很接近,但你需要指定数组是什么类型的proptype,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.