给定一个呈现其子级的简单组件:
类容器组件扩展组件{
静态类型={
子项:PropTypes.object.isRequired,
}
render(){
返回(
<;div>;
{this.props.children}
<;/div>;
);
}
}
导出默认容器组件;
问题:儿童道具的道具类型应该是什么?
当我将其设置为对象时,当我使用具有多个子项的组件时,它会失败:
<;集装箱组件>;
<;部门>;1</部门>;
<;部门>;2</部门>;
</集装箱组件>;
警告:失败的道具类型:无效的道具
数组类型的子道具
提供给集装箱组件,应为对象
如果我将它设置为数组,如果我只给它一个子元素,它将失败,即:
<;集装箱组件>;
<;部门>;1</部门>;
</集装箱组件>;
警告:失败的道具类型:对象类型的道具子级无效
提供给ContainerComponent,应为数组
请告诉我,我是否应该省心做一个关于子元素的propTypes检查
使用oneOfType或PropTypes.node
从“道具类型”导入道具类型
...
静态类型={
儿童:PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.node),
PropTypes.node
]).需要
}
或
静态属性类型={
子项:PropTypes.node.isRequired,
}