fix(suspense): fix suspense slot inside deoptimized slot call
fix #4556
This commit is contained in:
parent
93949ed20a
commit
141a5e188c
@ -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()
|
||||
|
Loading…
Reference in New Issue
Block a user