给定一个呈现其子级的简单组件:
class ContainerComponent extends Component {
static propTypes = {
children: PropTypes.object.isRequired,
}
render() {
return (
<div>
{this.props.children}
</div>
);
}
}
export default ContainerComponent;
问题:孩子道具的propType应该是什么?
当我将其设置为对象时,当我将组件与多个子级一起使用时,它将失败:
<ContainerComponent>
<div>1</div>
<div>2</div>
</ContainerComponent>
警告:无法道具类型:无效的支柱
children
型的array
供给ContainerComponent
,预计object
。
如果将其设置为数组,则如果我只给它一个孩子,它将失败:
<ContainerComponent>
<div>1</div>
</ContainerComponent>
警告:prop类型失败:提供给ContainerComponent的对象类型无效的prop子代,预期数组。
请告知,我是否应该不麻烦对子元素进行propTypes检查?
可能重复的操作组件中仅允许特定类型的子级的孩子
—
Abdennour TOUMI
请参阅下面的我的答案,其中描述了更多选项,但是,如果您要查找子组件,则为PropTypes.element。PropTypes.node描述了可以渲染的任何东西-字符串,数字,元素或这些东西的数组。如果这适合您,那么这就是方法。
—
ggilberth
node