From 47a1693578c5a91c8eca527db5be9fd6433db4c0 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 27 Feb 2025 06:40:50 -0500 Subject: [PATCH] fix --- packages/svelte/src/internal/client/dom/blocks/each.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/svelte/src/internal/client/dom/blocks/each.js b/packages/svelte/src/internal/client/dom/blocks/each.js index 063d251e16..d7c53a0248 100644 --- a/packages/svelte/src/internal/client/dom/blocks/each.js +++ b/packages/svelte/src/internal/client/dom/blocks/each.js @@ -269,6 +269,8 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f } } else { if (active_fork !== null && should_defer_append()) { + var keys = new Set(); + for (i = 0; i < length; i += 1) { value = array[i]; key = get_key(value, i); @@ -297,6 +299,14 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f offscreen_items.set(key, item); } + + keys.add(key); + } + + for (const [key, item] of state.items) { + if (!keys.has(key)) { + active_fork.skipped_effects.add(item.e); + } } active_fork?.add_callback(commit);