当前位置: 首页 > 面试题库 >

在状态字符串中呈现html

向锦
2023-03-14
问题内容

我使用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作为一个字符串做出反应(但请注意,阵营将无法在它的虚拟DOM使用这个标记):

<div dangerouslySetInnerHTML={{__html: this.state.output}} />

http://jsfiddle.net/5Y8r4/11/

用于执行此操作的API故意复杂,因为常规执行此操作并不安全。React可以针对XSS进行保护,使用dangerouslySetInnerHTML规避措施可以保护您,如果您不对这些数据进行消毒,就会使您面临风险。



 类似资料:
  • 问题内容: 这是我尝试过的方法以及出现问题的方法。 这有效: 这不是: description属性只是HTML内容的普通字符串。但是由于某种原因,它呈现为字符串,而不是HTML。 问题答案: 检查您尝试追加到节点的文本是否没有像这样转义: 代替这个:

  • 以下是我尝试过的,以及它是如何出错的。 这个作品: 这没有: description属性只是HTML内容的普通字符串。但是,由于某些原因,它被呈现为字符串,而不是HTML。 有什么建议吗?

  • 目前我正在开发一个新的外观和感觉,由于许多原因,我不得不从头开始,我现在最大的问题是在具有的组件中获取字符串的宽度和高度,以确定它应该在哪里绘制,我知道如何为普通文本获取它,但如果它呈现为html文本,该如何做??。 使用确实提供了纯文本所需的一切,但使用它来处理html时,它就像是纯文本一样,所以我尝试了并对视图对象图形的执行相同的操作,但仍然是相同的,而我想要的是绘制的文本的尺寸(差异很大,比

  • 问题内容: 我有一些道具,其字符串可能包含&等字符。它还包含空格。我想用替换所有空格。 有没有简单的方法可以做到这一点?请记住,我不能只使用以下语法进行渲染: 因为我首先必须用其标记替换任何HTML实体。我不想这样做,它似乎太低了。 有办法吗? 问题答案: 代替使用HTML实体,您可以使用Unicode字符,它指向(U + 00A0 NON-BREAKING SPACE):

  • 我刚开始检查react表单。我遇到了一个问题,react在渲染中标记了我试图填充输入框标签的行。以下是我的应用程序代码: 在这一点上,我所要做的就是用名称输入框的标签为“您的名字”来呈现表单,如果没有输入名称,则让react用名称输入框的标签为“您需要输入您的名字”来重新呈现表单。 非常感谢任何援助。

  • 我已经从RN0.54升级到了0.57,而我的应用程序由于使用了React原生元素而几乎崩溃了。 我在组件上使用了它们的错误功能,这些功能基本上使您能够为错误消息设置样式并设置错误消息。非常方便,但是升级已经打破了这些,现在我遇到了这个错误: 因此,我删除了代码,错误也消失了,但是当我运行这段代码时,仍然收到问题: