Javascript 在某些条件下不工作会产生危险反应

Javascript 在某些条件下不工作会产生危险反应,javascript,reactjs,Javascript,Reactjs,我正在使用危险的LysetinerHTML将链接插入到复合组件中。render方法调用一个方法rowValue,该方法检查组件的状态并返回要呈现的适当标记 这是rowValue方法: rowValue: function() { var fieldValue; if(!this.state.isBeingEdited) { fieldValue = ( <div dangerouslySetInnerHtml={{ __html:

我正在使用
危险的LysetinerHTML
将链接插入到复合组件中。
render
方法调用一个方法
rowValue
,该方法检查组件的状态并返回要呈现的适当标记

这是
rowValue
方法:

rowValue: function() {
    var fieldValue;

    if(!this.state.isBeingEdited) {
        fieldValue = (
            <div dangerouslySetInnerHtml={{ __html: this.props.value }} />
        );
    } else {
        fieldValue = (
            <div className="col-sm-6 col-xs-6 js-field-wrapper">
                <input type="text"
                       defaultValue={this.extractUrl(this.props.value)}
                       className="form-control" />
            </div>
        );
    }

    return fieldValue;
},
edit
状态设置回false将呈现空div


在另一个
div
中使用
DangerlySetinerHTML
prop包装
div
不会改变任何事情。

我无法找出发生这种情况的确切原因,但我找到了一个解决方法。这里是:

我想用一个特定的链接填充div。我没有通过
dangerlysetinerhtml
传递带有锚定标记的字符串,而是传递URL并设置锚定标记的
href
属性

  fieldValue = (
      <div className="col-sm-6 col-xs-6">
         <a href="{this.props.url}">{this.props.url}</a>
      </div>
    );
fieldValue=(
);

你的div和
危险的setinenerHTML
是自动关闭的-div不是自动关闭的。@Tom我在react网站上的示例和(页面上的最后一个示例)下面举个例子。在这两个页面上,
div
dangerlysetinerhtml
都是自动关闭的,因此,我刚刚通过添加一个结束标记进行了测试,仍然得到相同的错误。您是否检查了
this.props.value
是否包含有效的HTML?该分区的道具中是否有
危险的LysetinerHTML
的内容。
<div class="col-sm-6 col-xs-6 js-field-wrapper" data-reactid=".1.1.0.0.0.1.0.0.2.1:$angellist.0.1">
    <input type="text" class="form-control" value="https://example.com" data-reactid=".1.1.0.0.0.1.0.0.2.1:$angellist.0.1.0">
</div>
  fieldValue = (
      <div className="col-sm-6 col-xs-6">
         <a href="{this.props.url}">{this.props.url}</a>
      </div>
    );