我有一个接受孩子Foo
和Bar
的组件Baz
。我想验证一下,当存在一系列孩子时,仅接受类型为Bar
和Baz
的组件。
该组件还可以接受单个Bar
或Baz
组件。
我的代码:
Foo.propTypes = {
children: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.oneOfType([
componentPropType(Bar),
componentPropType(Baz)
])),
componentPropType(Bar),
componentPropType(Baz)
])
};
我的想法是,以上内容将允许使用Bar
或Baz
类型的单个组件或包含这两个组件的数组。
在Storybook中运行时,出现以下错误:
我知道React中类似孩子的唯一键,但是我无法在React文档或其他地方找到使用PropTypes数组时解决此唯一键警告的指南。
当我删除PropTypesOneOfType()
调用的组件类型(即仅将Proptypes.element
作为参数传递)时,我看不到错误。
我是否正确使用了PropTypes子级验证?