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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user