diff --git a/packages/runtime-core/src/components/Suspense.ts b/packages/runtime-core/src/components/Suspense.ts index bb5ef9b3ce6..8408cab388d 100644 --- a/packages/runtime-core/src/components/Suspense.ts +++ b/packages/runtime-core/src/components/Suspense.ts @@ -7,7 +7,8 @@ import { closeBlock, currentBlock, Comment, - createVNode + createVNode, + isBlockTreeEnabled } from '../vnode' import { isFunction, isArray, ShapeFlags, toNumber } from '@vue/shared' import { ComponentInternalInstance, handleSetupResult } from '../component' @@ -727,8 +728,8 @@ function normalizeSuspenseChildren(vnode: VNode) { function normalizeSuspenseSlot(s: any) { let block: VNode[] | null | undefined if (isFunction(s)) { - const isCompiledSlot = s._c - if (isCompiledSlot) { + const trackBlock = isBlockTreeEnabled && s._c + if (trackBlock) { // disableTracking: false // allow block tracking for compiled slots // (see ./componentRenderContext.ts) @@ -736,7 +737,7 @@ function normalizeSuspenseSlot(s: any) { openBlock() } s = s() - if (isCompiledSlot) { + if (trackBlock) { s._d = true block = currentBlock closeBlock()