ReactJs:这个.props.children的道具类型应该是什么?

给定一个呈现其子级的简单组件:

类容器组件扩展组件{
静态类型={
子项:PropTypes.object.isRequired,
}
render(){
返回(
<div>
{this.props.children}
</div>
);
}
}
导出默认容器组件;

问题:儿童道具的道具类型应该是什么?

当我将其设置为对象时,当我使用具有多个子项的组件时,它会失败:

<集装箱组件>
<部门>1&lt/部门>
<部门>2&lt/部门>
&lt/集装箱组件>

警告:失败的道具类型:无效的道具数组类型的子道具
提供给集装箱组件,应为对象

如果我将它设置为数组,如果我只给它一个子元素,它将失败,即:

<集装箱组件>
<部门>1&lt/部门>
&lt/集装箱组件>

警告:失败的道具类型:对象类型的道具子级无效
提供给ContainerComponent,应为数组

请告诉我,我是否应该省心做一个关于子元素的propTypes检查

使用oneOfTypePropTypes.node

从“道具类型”导入道具类型
...
静态类型={
儿童:PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.node),
PropTypes.node
]).需要
}

静态属性类型={
子项:PropTypes.node.isRequired,
}

发表评论