在自定义 React 组件中的以下代码片段中
React.Children.map(this.props.children), (child) => {
if (predicate(child)) {
// do stuff
}
else {
// do other stuff
}
}
predicate
是一个函数,用于测试孩子的某些属性或其他什么。 我如何编写predicate
以测试子元素是什么类型的元素?
在文章中,在 React 中将props发送给孩子,您会看到我在上面应用的相同模式,除了他的谓词函数看起来像child.type === RadioOption.type
- 如果我想检查孩子继承自的类型,这将不起作用。
就我而言,我StatelessModal
-child
可能是扩展StatelessModal
.
当我知道 child 是扩展 StatelessModal 的 Modal 组件之一时,我发现它既不工作predicate = (child) => child instanceof StatelessModal
也不predicate = (child) => child.type instanceof StatelessModal
工作。