fix(suspense): fix suspense slot inside deoptimized slot call

fix #4556
This commit is contained in:
Evan You 2021-09-16 12:14:33 -04:00
parent 93949ed20a
commit 141a5e188c

View File

@ -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()