React.ReactNode来反应元素

时间:2017-08-09 15:58:32

标签: javascript html reactjs typescript

我有一个React.ReactNode类型的对象,我想:

1)检查它是否为React.ReactElement

类型

2)如果是,那么我想创建一个等于节点

的ReactElement对象

对于第1部分,我使用的是React.isValidElement(如果需要,不确定)

第2部分,我不知道怎么做

最后,我需要能够检查节点中是否包含某个类(如果它是一个元素,如果有帮助的话)。我假设我需要创建ReactElement对象来执行此操作,但如果不是那样也可以。

1 个答案:

答案 0 :(得分:0)

首先,您正在使用TypeScript(至少它看起来像标签) - 所以,理想情况下,您甚至不需要对对象的类型进行运行时检查,您可以在编译时这样做

interface PropTypes {
  something: React.ReactElement<...>
}

const M = ({ something }: PropTypes) => { 

}

其次,为了从中创建ReactElement,您可以使用React.cloneElement(...)

const cElement = React.cloneElement(something, something.props, [...children])