From 32d31738b71edf23dc05bf28e4f69801b607e7cf Mon Sep 17 00:00:00 2001 From: * <8> Date: Thu, 17 Feb 2022 11:12:47 +0800 Subject: [PATCH] Match-id-07694f7bc016fe0cfd4ed0c37eae556bdf18cc58 --- libs/horizon/src/renderer/TreeBuilder.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libs/horizon/src/renderer/TreeBuilder.ts b/libs/horizon/src/renderer/TreeBuilder.ts index 9ff1cd0d..020b58b2 100644 --- a/libs/horizon/src/renderer/TreeBuilder.ts +++ b/libs/horizon/src/renderer/TreeBuilder.ts @@ -57,12 +57,15 @@ function resetProcessingVariables(startUpdateVNode: VNode) { // 收集有变化的节点,在submit阶段继续处理 function collectDirtyNodes(vNode: VNode, parent: VNode): void { // 将子树和此vNode的所有效果附加到父树的效果列表中,子项的完成顺序会影响副作用顺序。 - if (vNode.dirtyNodes !== null && vNode.dirtyNodes.length) { + const dirtyNodes = vNode.dirtyNodes; + if (dirtyNodes !== null && dirtyNodes.length) { if (parent.dirtyNodes === null) { parent.dirtyNodes = [...vNode.dirtyNodes]; } else { parent.dirtyNodes.push(...vNode.dirtyNodes); } + dirtyNodes.length = 0; + vNode.dirtyNodes = null; } if (FlagUtils.hasAnyFlag(vNode)) {