]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix(slots): fix conditional slot
authorEvan You <yyx990803@gmail.com>
Thu, 27 Feb 2020 02:43:27 +0000 (21:43 -0500)
committerEvan You <yyx990803@gmail.com>
Thu, 27 Feb 2020 02:43:27 +0000 (21:43 -0500)
fix #787

packages/runtime-core/src/helpers/createSlots.ts

index b78b52ae3eec3f2188892e80e7aeb1dc8137e7e6..c16aeed7740e99d8c75aa85de619d0443a085215 100644 (file)
@@ -8,7 +8,10 @@ interface CompiledSlotDescriptor {
 
 export function createSlots(
   slots: Record<string, Slot>,
-  dynamicSlots: (CompiledSlotDescriptor | CompiledSlotDescriptor[])[]
+  dynamicSlots: (
+    | CompiledSlotDescriptor
+    | CompiledSlotDescriptor[]
+    | undefined)[]
 ): Record<string, Slot> {
   for (let i = 0; i < dynamicSlots.length; i++) {
     const slot = dynamicSlots[i]
@@ -17,7 +20,7 @@ export function createSlots(
       for (let j = 0; j < slot.length; j++) {
         slots[slot[j].name] = slot[j].fn
       }
-    } else {
+    } else if (slot) {
       // conditional single slot generated by <template v-if="..." #foo>
       slots[slot.name] = slot.fn
     }