Bha*_*gav 5 javascript reactjs
我dangerouslySetInnerHtml用来将链接插入复合反应组件.该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;
},
Run Code Online (Sandbox Code Playgroud)
在初始渲染时,div的内容为空:
<div class="col-sm-6 col-xs-6" data-reactid=".1.1.0.0.0.1.0.0.2.1:$angellist.0.1"></div>
Run Code Online (Sandbox Code Playgroud)
但是当edit组件的状态设置为true输入时,正确填充了正确的值:
<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>
Run Code Online (Sandbox Code Playgroud)
将edit状态设置为false会呈现空div.
包裹div带dangerouslySetInnerHtml内的另一个支柱div不会改变任何东西.
我无法弄清楚为什么会发生这种情况的确切条件,但我找到了解决方法。为了后代的缘故,这里是:
我想用特定的链接填充 div。我没有传递带有要设置的锚标记的字符串,dangerouslySetInnerHtml而是传递了 URL 并设置了href锚标记的属性。
fieldValue = (
<div className="col-sm-6 col-xs-6">
<a href="{this.props.url}">{this.props.url}</a>
</div>
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2062 次 |
| 最近记录: |