From 101cb7ae99f361cfa5adeadb5f6c6e78603c4385 Mon Sep 17 00:00:00 2001 From: "liujuping.liujupin" Date: Tue, 19 Oct 2021 19:26:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=90=AB=E6=9C=89?= =?UTF-8?q?=E4=BD=8E=E4=BB=A3=E7=A0=81=E7=BB=84=E4=BB=B6=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E5=87=BA=E7=8E=B0=E5=A4=9A=E6=AC=A1=E6=B8=B2=E6=9F=93=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=9A=84=E6=80=A7=E8=83=BD=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/renderer-core/src/hoc/leaf.tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/renderer-core/src/hoc/leaf.tsx b/packages/renderer-core/src/hoc/leaf.tsx index a431d279a..74780577e 100644 --- a/packages/renderer-core/src/hoc/leaf.tsx +++ b/packages/renderer-core/src/hoc/leaf.tsx @@ -81,7 +81,7 @@ function initRerenderEvent({ ) { return; } - cache.event.get(schema.id)?.dispose.forEach((d: any) => d && d()); + cache.event.get(schema.id)?.dispose.forEach((disposeFn: any) => disposeFn && disposeFn()); cache.event.set(schema.id, { clear: false, leaf, @@ -107,7 +107,7 @@ function clearRerenderEvent(id: string): void { if (cache.event.get(id)?.clear) { return; } - cache.event.get(id)?.dispose?.forEach((d: any) => d && d()); + cache.event.get(id)?.dispose?.forEach((disposeFn: any) => disposeFn && disposeFn()); cache.event.set(id, { clear: true, dispose: [], @@ -134,7 +134,10 @@ export function leafWrapper(Comp: types.IBaseRenderer, { const editor = host?.designer?.editor; const { Component, forwardRef } = adapter.getRuntime(); - if (!cache || curDocumentId !== cache.documentId) { + if (!cache || (curDocumentId && curDocumentId !== cache.documentId)) { + cache?.event.forEach(event => { + event.dispose?.forEach((disposeFn: any) => disposeFn && disposeFn()); + }); cache = new LeafCache(curDocumentId); }