我有一个React.ReactNode类型的对象,我想:
1)检查它是否为React.ReactElement
类型2)如果是,那么我想创建一个等于节点
的ReactElement对象对于第1部分,我使用的是React.isValidElement(如果需要,不确定)
第2部分,我不知道怎么做
最后,我需要能够检查节点中是否包含某个类(如果它是一个元素,如果有帮助的话)。我假设我需要创建ReactElement对象来执行此操作,但如果不是那样也可以。
答案 0 :(得分:0)
首先,您正在使用TypeScript(至少它看起来像标签) - 所以,理想情况下,您甚至不需要对对象的类型进行运行时检查,您可以在编译时这样做
interface PropTypes {
something: React.ReactElement<...>
}
const M = ({ something }: PropTypes) => {
}
其次,为了从中创建ReactElement,您可以使用React.cloneElement(...)
const cElement = React.cloneElement(something, something.props, [...children])