美文网首页
Objects are not valid as a React

Objects are not valid as a React

作者: 捡了幸福的猪 | 来源:发表于2021-08-04 21:18 被阅读0次

背景

React+typescript 开发,场景为 将后端返回的字符串解析成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的集合,要使用数组。 ??? 我也没渲染数组啊,只不过是个对象啊....

原因

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>

解决方法来自:一个神奇的网站

其他小知识

将string转为 DOM的方法:

hi 点个赞再走~

相关文章

网友评论

      本文标题:Objects are not valid as a React

      本文链接:https://www.haomeiwen.com/subject/sbqpvltx.html