2017-08-09 58 views
0

我有類型React.ReactNode的目的,我想:React.ReactNode反應元件

1)檢查它的類型是React.ReactElement

2)如果是的,那麼我要創建一個ReactElement對象等於節點

的第1部分中,我使用React.isValidElement(如果必要的話不知道)

的第2部分,我不知道如何在所有

最後,我需要能夠檢查某個類是否包含在該節點中,如果它是一個元素(如果有幫助的話)。我假設我需要創建ReactElement對象來做到這一點,但如果沒有,那也是可以的。

回答

0

首先,您使用的是TypeScript(至少它是通過標籤看起來的方式) - 所以,理想情況下,您甚至不需要對對象的類型進行運行時檢查,您可以在編譯時間

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

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

} 

其次,爲了創造從它ReactElement,你可以使用React.cloneElement(...)

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

這並不與類型React.ReactNode不幸 – csiscs

+0

HM,有趣的工作 - 怎麼樣'陣營.createElement'? –