呈现状态字符串中的html
render html in state string
我使用setState更新部分html,但我发现新的更新html没有呈现。这是代码,js-fiddle:
html:
<div>hello<br />world<br /></div>
<div id='content'></div>
js:
var Main = React.createClass({
getInitialState: function() {
return {output: 'hello<br />world<br />'};
},
render: function() {
return (
<div>
{this.state.output}
</div>
);
}
});
React.renderComponent(<Main/>, document.getElementById('content'));
我省略了从服务器更新html的部分,但结果是一样的。如何让处于状态的字符串被呈现?
使用dangerouslySetInnerHTML
将HTML作为字符串注入React(但请注意,React将无法在其虚拟DOM中使用此标记):
<div dangerouslySetInnerHTML={{__html: this.state.output}} />
http://jsfiddle.net/5Y8r4/11/
做这件事的API是故意复杂的,因为这不是安全的常规做法。React有针对XSS的保护措施,使用dangerouslySetInnerHTML
可以绕过这些保护措施,如果你不清理这些数据,就会让你面临风险。
相关文章:
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- HTML字符串作为上下文
- 正在分析HTML字符串并从中进行选择
- 将GET请求(HTML字符串)转换为完整的DOM对象
- 在树枝模板上从数据库中解压缩HTML字符串
- 如何使用Razor显示模板将字符串转换为html字符串
- 如何在不打断标记的情况下突出显示html字符串中的文本
- 使用val()在jquery循环中设置html字符串的val
- 搜索并用jQuery替换整个HTML字符串
- 替换 html 字符串中的某些“<”和“>”
- Javascript-将包含变量的html字符串作为参数传递
- 如何用JavaScript替换HTML字符串
- 如何在我的模板(Angular2/TypeScript)中将HTML字符串转换为HTML
- 在HTML字符串的某个段落后插入HTML
- 使用 javascript 压缩包含嵌入图像的 HTML 字符串
- 需要使用Java编码/转义HTML字符串,并在JavaScript中解码HTML字符串
- 在不更改 HTML 的情况下操作 HTML 字符串的内容
- 使用JavaScript从HTML字符串中提取文本
- regex在JavaScript中拆分一个html字符串
- 创建HTML对象的Javascript与创建HTML字符串的比较