Objects are not valid as a React child (found: [object HTMLDivElement])

背景

React+typescript 開發(fā),場景為 將后端返回的字符串解析成DOM,渲染在ToolTip 組件中。代碼類似為:

<ToolTip
  value = { () => {
      const div = document.createElement('div');
      div.innerHTML = text;
   return div;
 }}>
    hover tip
</ToolTip>

ToolTip 組件的 value值類型為string | React node 。

問題

然后這樣寫就報錯了:
image.png

表示我如果要渲染一個children的集合,要使用數(shù)組。 ??? 我也沒渲染數(shù)組啊,只不過是個對象啊....

原因

React 的children 的值 只能是 其他的組件或者 html 元素。
像這樣:

// ok
<SomeComponent>
    <AnotherComponent />
    <p>Hello, World</p>
</SomeComponent>

// no
<SomeComponent>
  { property1: 'someText', property2: 69 }  
</SomeComponent>

當 需要渲染一個對象時, 可以直接使用map 方法。 比如:

<SomeComponent>
    const someObject = { property1: 'someText', property2: 69 };
    someObject.map(function(item, i) => <li key={i}>{item}</li>)
</SomeComponent>

解決方法來自:一個神奇的網(wǎng)站

其他小知識

將string轉(zhuǎn)為 DOM的方法:

hi 點個贊再走~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容