0
我环顾四周,找不到任何有关此信息。我的问题是这个。当我有反应这样的代码:React dangerouslySetInnerHTML只在div标记上使用时才能正常工作
<p ref="description" className="description" dangerouslySetInnerHTML={{__html: this.props.description}}></p>
和
this.props.description = "<p>this is a test</p>";
通过dangerouslySetInnerHTML添加HTML是在既没有这样的说明补充说:
<p class="description" data-reactid=".0.0.2.2" style="height: 120.639999389649px;"></p>
<p>this is a test</p>
这似乎只发生在传递给dangerouslySetInnerHTML的字符串包含块级元素。如果传递的字符串是:
this.props.description = "<span>this is a test</span>";
它正常工作,并将其输出:
<p class="description" data-reactid=".0.0.2.2" style="height: 120.639999389649px;">
<span>this is a test</span>
</p>
,如果我的代码,以便更改我用div标签,而不是AP标签是这样的:
<div ref="description" className="description" dangerouslySetInnerHTML={{__html: this.props.description}}></div>
然后危险地SetInnerHTML与块级元素正常工作并输出:
<div class="description" data-reactid=".0.0.2.2" style="height: 120.639999389649px;">
<p>this is a test</p>
</div>
你在一个属性中嵌入html,这是不允许的。它显然采取了假设你想要插入REAL html的路线。如果你想HTML中的属性,你必须编码它。 'foo =“<p> hi mom </p >”' –