From c1f9dbcf3aedf627401518e0903606146be6fad7 Mon Sep 17 00:00:00 2001 From: daiwei Date: Mon, 20 Oct 2025 09:28:30 +0800 Subject: [PATCH] fix(createKeyedFragment): use isLastInsertion for hydration node advancement --- packages/runtime-vapor/src/apiCreateFragment.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/runtime-vapor/src/apiCreateFragment.ts b/packages/runtime-vapor/src/apiCreateFragment.ts index a1b3fe2976..3e40281a02 100644 --- a/packages/runtime-vapor/src/apiCreateFragment.ts +++ b/packages/runtime-vapor/src/apiCreateFragment.ts @@ -4,6 +4,7 @@ import { DynamicFragment } from './fragment' import { insertionAnchor, insertionParent, + isLastInsertion, resetInsertionState, } from './insertionState' import { renderEffect } from './renderEffect' @@ -11,6 +12,7 @@ import { renderEffect } from './renderEffect' export function createKeyedFragment(key: () => any, render: BlockFn): Block { const _insertionParent = insertionParent const _insertionAnchor = insertionAnchor + const _isLastInsertion = isLastInsertion if (!isHydrating) resetInsertionState() const frag = __DEV__ ? new DynamicFragment('keyed') : new DynamicFragment() @@ -21,7 +23,7 @@ export function createKeyedFragment(key: () => any, render: BlockFn): Block { if (!isHydrating) { if (_insertionParent) insert(frag, _insertionParent, _insertionAnchor) } else { - if (_insertionAnchor !== undefined) { + if (_isLastInsertion) { advanceHydrationNode(_insertionParent!) } } -- 2.47.3