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>
);