【问题标题】:React - Ignore subnodesReact - 忽略子节点
【发布时间】:2014-09-11 22:47:18
【问题描述】:

有没有办法阻止 react 移除/更改嵌入在 react 组件中的节点。

例如,我有一个 React 组件,它充当非 React 组件的容器,它自己管理其 DOM。有没有办法为reactjs标记此类组件,使其不修改其DOM?

在我的例子中,我希望我的 react 组件可以被 CKeditor 内联编辑,但 react 总是删除/销毁编辑器和它添加到 DOM 的所有节点,因为它们没有在 react 组件本身中定义,并且所以它认为那些元素不应该存在。

有什么想法吗?

【问题讨论】:

    标签: javascript dom reactjs


    【解决方案1】:

    如果您从组件上的 shouldComponentUpdate 方法返回 false,那么 React 将退出并跳过该子树的整个协调过程。当然,这意味着您需要自己管理该区域中的所有 DOM 突变,并且无法利用 React。

    【讨论】:

    【解决方案2】:

    看看https://facebook.github.io/react/tips/dangerously-set-inner-html.html上的 dangerouslySetInnerHTML。

    这是添加标记的方法,它不遵循 React 的更新方法和不支持的标签。

    这样你仍然可以更新你的组件,而不是更新它的一部分。

    【讨论】: