首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反应DangerouslySetInnerHTML

反应DangerouslySetInnerHTML
EN

Stack Overflow用户
提问于 2017-11-07 14:50:56
回答 1查看 7.5K关注 0票数 2

如何使用react将组件子组件呈现为Html,如果我设置了文本,它可以很好地工作,但是如果我设置了Html返回对象

代码语言:javascript
复制
    class App extends React.Component{
  render(){
    return(
      <div dangerouslySetInnerHTML={{__html: this.props.children}}>

      </div>
    )
  }
}

1) ReactDOM.render(
  <App> Test </App>,
 document.getElementById('root')); --- Works


2) ReactDOM.render(
  <App> <p>Test</p> </App>,
 document.getElementById('root')); --- return [object Object]

链接到JS Bin

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-07 15:01:47

正如我在注释中解释的那样,您在输出中获得了[object Object],因为__html需要是一个字符串,但是要传递从<p>Test</p>创建的React组件。

我还不清楚你为什么要这么做,但是要做你想要做的事情,你需要传递一个字符串。

因此,您可以执行以下操作之一:

代码语言:javascript
复制
<App>{"<p>Test</p>"}</App>

代码语言:javascript
复制
<App children="<p>Test</p>" />

两者都是等价的,并将标记作为字符串传递,然后字符串将成为__html的值。

Note!

这将只适用于正常的HTML -不反应组件写在JSX!

例如,这将使而不是工作:

代码语言:javascript
复制
<App children="<Foo>Test</Foo>" />
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47160806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档