假设我定义了这个PropType:
Component.propTypes = {
complicatedData: PropTypes.arrayOf(
PropTypes.shape({
name: PropTypes.string,
data: PropTypes.arrayOf(PropTypes.number)
})
).isRequired,
};如果需要该数据结构,那么对于嵌套结构的每个级别,isRequired是否都是必需的,还是最终的顶级isRequired包含了内部的所有内容?
发布于 2018-01-12 02:56:38
顶级isRequired只检查是否提供了complicatedData,并且是一个数组。您可以给它一个包含空对象(如[{}, {}] )的数组,它将根据您的代码通过测试。
如果希望数组complicatedData中的每个元素都具有一个name属性,则需要编写:
Component.propTypes = {
complicatedData: PropTypes.arrayOf(
PropTypes.shape({
name: PropTypes.string.isRequired,
data: PropTypes.arrayOf(PropTypes.number)
})
).isRequired,
};如果希望每个元素都具有一个data属性,则相同。
https://stackoverflow.com/questions/48218641
复制相似问题