From 1031595a976b33f8e5e3a71d8c00944d4777beb1 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Tue, 16 Sep 2025 19:34:15 +0800 Subject: [PATCH] =?UTF-8?q?fix(core):=20=E5=BC=82=E6=AD=A5=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E6=95=B0=E6=8D=AE=E6=BA=90=E6=97=B6=EF=BC=8C=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=BA=90=E4=BA=8B=E4=BB=B6=E9=85=8D=E7=BD=AE=E5=A4=B1?= =?UTF-8?q?=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/App.ts | 9 +++++++-- packages/core/src/EventHelper.ts | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/core/src/App.ts b/packages/core/src/App.ts index 53d46d11..c1bf7038 100644 --- a/packages/core/src/App.ts +++ b/packages/core/src/App.ts @@ -167,8 +167,13 @@ class App extends EventEmitter { this.setPage(pageId); if (this.dataSourceManager) { - const dataSourceList = Array.from(this.dataSourceManager.dataSourceMap.values()); - this.eventHelper?.bindDataSourceEvents(dataSourceList); + if (this.dataSourceManager.isAllDataSourceRegistered()) { + this.eventHelper?.bindDataSourceEvents(); + } else { + this.dataSourceManager.once('registered-all', () => { + this.eventHelper?.bindDataSourceEvents(); + }); + } } } diff --git a/packages/core/src/EventHelper.ts b/packages/core/src/EventHelper.ts index 9697b5f7..5940a391 100644 --- a/packages/core/src/EventHelper.ts +++ b/packages/core/src/EventHelper.ts @@ -121,7 +121,9 @@ export default class EventHelper extends EventEmitter { this.nodeEventList.clear(); } - public bindDataSourceEvents(dataSourceList: DataSource[]) { + public bindDataSourceEvents() { + const dataSourceList = Array.from(this.app.dataSourceManager?.dataSourceMap.values() || []); + this.removeDataSourceEvents(dataSourceList); dataSourceList.forEach((dataSource) => {