From 47c26ed189cee952871c479bad61861abd05a482 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Fri, 30 Jun 2023 19:40:47 +0800 Subject: [PATCH] =?UTF-8?q?fix(core):=20=E4=B8=80=E4=B8=AA=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E9=85=8D=E7=BD=AE=E5=A4=9A=E4=B8=AA=E7=9B=B8=E5=90=8C?= =?UTF-8?q?=E7=9A=84=E4=BA=8B=E4=BB=B6=E9=94=80=E6=AF=81=E5=90=8E=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E8=83=BD=E6=88=90=E5=8A=9F=E7=A7=BB=E9=99=A4=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E7=BB=91=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/App.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/core/src/App.ts b/packages/core/src/App.ts index 78ad31fe..fce90a5c 100644 --- a/packages/core/src/App.ts +++ b/packages/core/src/App.ts @@ -78,7 +78,7 @@ class App extends EventEmitter { public eventQueueMap: Record = {}; - private eventList: { [name: string]: (fromCpt: Node, ...args: any[]) => void } = {}; + private eventList = new Map<(fromCpt: Node, ...args: any[]) => void, string>(); constructor(options: AppOptionsConfig) { super(); @@ -251,11 +251,12 @@ class App extends EventEmitter { } public bindEvents() { - Object.entries(this.eventList).forEach(([name, handler]) => { - this.off(name, handler); + Array.from(this.eventList.keys()).forEach((handler) => { + const name = this.eventList.get(handler); + name && this.off(name, handler); }); - this.eventList = {}; + this.eventList.clear(); if (!this.page) return; @@ -265,8 +266,7 @@ class App extends EventEmitter { const eventHanlder = (fromCpt: Node, ...args: any[]) => { this.eventHandler(event, fromCpt, args); }; - this.eventList[eventName] = eventHanlder; - + this.eventList.set(eventHanlder, eventName); this.on(eventName, eventHanlder); }); }