【发布时间】:2015-11-23 13:32:25
【问题描述】:
我有以下使用 react 构建的代码。
<div id="wrapper">
<form onSubmit={this.handleSubmit}>
<div id="content">
.....
</div>
</form>
</div>
在这里,第三方库会定期更新 DIV#content。但是,在提交表单时,我可以用我的代码中的另一个 DIV 包装 DIV#content。提交修改后请在下方找到:
<div id="wrapper">
<form onSubmit={this.handleSubmit}>
<div id="contentWrapper">
<div id="content">
.....
</div>
</div>
</form>
</div>
但是,一旦 DIV#content 被另一个 DIV 包装,第三方库就会停止工作。谁能告诉我为什么在修改 DOM 结构后它会停止更新 DIV#content,尽管 DIV#content 元素仍然可用于库。
注意:React 不会抛出任何关于 DOM 结构更改的错误,只是库停止工作。
[编辑]:这是我使用 react 渲染的方式
render() {
var returnIt;
if (useDivOne) returnIt = (<div id='initial'></div>);
else returnIt = (<div id='modified'></div>);
return (returnItj);
}
【问题讨论】:
-
很大程度上取决于其他库在做什么,以及如何包装 div。一种可能性是,您不是包装现有的 DOM 节点,而是创建一个具有相同内容的新节点。如果您的第三方库持有对原始节点的引用,而不是每次都找到它,则它不会引用新的
DIV#content -
你能添加一个 React 代码吗?
-
@nAz 我已经添加了示例反应代码。谢谢。
标签: javascript html reactjs