From 5aad4d300b7974efe348cd7c4daeab273602f9ad Mon Sep 17 00:00:00 2001 From: xile611 Date: Tue, 12 Mar 2024 15:28:24 +0800 Subject: [PATCH] fix: stage events should be released --- packages/vgrammar-core/src/view/View.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/vgrammar-core/src/view/View.ts b/packages/vgrammar-core/src/view/View.ts index df990a9b4..b0dcf82c7 100644 --- a/packages/vgrammar-core/src/view/View.ts +++ b/packages/vgrammar-core/src/view/View.ts @@ -1344,6 +1344,11 @@ export default class View extends EventEmitter implements IView { stage && stage.on('*', this.delegateEvent); } + private releaseStageEvent() { + const stage = this.renderer.stage(); + stage && stage.off('*', this.delegateEvent); + } + private delegateEvent = (event: any, type: string) => { const activeElement = event.target?.[BridgeElementKey]; const extendedEvt = getExtendedEvents(this, event, activeElement, type, EVENT_SOURCE_VIEW); @@ -1513,6 +1518,7 @@ export default class View extends EventEmitter implements IView { // --- release --- release() { + this.releaseStageEvent(); this._unBindResizeEvent(); this.clearProgressive(); Factory.unregisterRuntimeTransforms();