From 339f299ac6e0b52ddabaa82414fcd024a9961bea Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Tue, 16 Mar 2021 14:01:24 +0100 Subject: [PATCH] fix: handle async placeholders in normalizeScopedSlot --- src/core/vdom/helpers/normalize-scoped-slots.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/core/vdom/helpers/normalize-scoped-slots.js b/src/core/vdom/helpers/normalize-scoped-slots.js index 1e43fd393f7..a5636802b9c 100644 --- a/src/core/vdom/helpers/normalize-scoped-slots.js +++ b/src/core/vdom/helpers/normalize-scoped-slots.js @@ -3,6 +3,7 @@ import { def } from 'core/util/lang' import { normalizeChildren } from 'core/vdom/helpers/normalize-children' import { emptyObject } from 'shared/util' +import { isAsyncPlaceholder } from './is-async-placeholder' export function normalizeScopedSlots ( slots: { [key: string]: Function } | void, @@ -60,9 +61,10 @@ function normalizeScopedSlot(normalSlots, key, fn) { res = res && typeof res === 'object' && !Array.isArray(res) ? [res] // single vnode : normalizeChildren(res) + let _vnode: VNode = res && res[0] return res && ( - res.length === 0 || - (res.length === 1 && res[0].isComment) // #9658 + !_vnode || + (_vnode.isComment && !isAsyncPlaceholder(_vnode)) // #9658, #10391 ) ? undefined : res }