Просмотр исходного кода

fix(runtime-core): ensure root stable fragments inherit elements for moving

fix #2134
Evan You 5 лет назад
Родитель
Сommit
bebd44f793
1 измененных файлов с 6 добавлено и 1 удалено
  1. 6 1
      packages/runtime-core/src/renderer.ts

+ 6 - 1
packages/runtime-core/src/renderer.ts

@@ -1157,7 +1157,12 @@ function baseCreateRenderer(
         )
         // #2080 if the stable fragment has a key, it's a <template v-for> that may
         //  get moved around. Make sure all root level vnodes inherit el.
-        if (n2.key != null) {
+        // #2134 or if it's a component root, it may also get moved around
+        // as the component is being moved.
+        if (
+          n2.key != null ||
+          (parentComponent && n2 === parentComponent.subTree)
+        ) {
           traverseStaticChildren(n1, n2, true /* shallow */)
         }
       } else {