开发者问题收集

DOMException:无法在“Node”上执行“insertBefore”:要插入新节点的节点不是此节点的子节点

2018-07-16
4147

我在使用 第三方库 时遇到了问题。

我编写了一个 component 来监视 position 属性,并调用 reload 方法来刷新地图上的叠加层。

当只有 一个 v-for 时,它运行正常。

但是当有 两个 v-for 时,它失败了。

我该如何解决这个问题?

3个回答

只需将每个 v-for 指令包装在其自己的专用父 div 中即可。

每个 v-for 指令都会扩展为多个元素。如果有多个具有相同父元素的列表需要同时更新,Vue 将很难更新虚拟 dom。

Alex
2018-09-19

此问题不仅发生在一个组件中有多个 v-for 时;我在 nuxt3 中使用多个根元素时也遇到了这个问题。我使用旧式 vue2 语法修复了这个问题:每个 template 仅包含 一个 子元素(或 v-for 指令),其中包含所有内容。

TL;DR:将复杂内容( v-for 、页面内容 > 1 个元素,...)包装在另一个周围的 div 中可能会解决此问题。

STh
2022-06-10

当带有 v-if 的 html 元素没有父容器时,会出现此错误

W. Nema
2023-07-01