mirror of
https://github.com/Tencent/tmagic-editor.git
synced 2025-09-19 21:06:06 +08:00
fix(data-source): 异步加载数据源时,初始化第一次编译时数据源可能未加载,需要优先设置数据源默认值
This commit is contained in:
parent
79f65fb516
commit
d628ffad26
@ -76,6 +76,7 @@ class DataSourceManager extends EventEmitter {
|
||||
public dataSourceMap = new Map<string, DataSource & Record<string, any>>();
|
||||
|
||||
public data: DataSourceManagerData = {};
|
||||
public initialData: DataSourceManagerData = {};
|
||||
public useMock?: boolean = false;
|
||||
|
||||
constructor({ app, useMock, initialData }: DataSourceManagerOptions) {
|
||||
@ -87,6 +88,7 @@ class DataSourceManager extends EventEmitter {
|
||||
this.useMock = useMock;
|
||||
|
||||
if (initialData) {
|
||||
this.initialData = initialData;
|
||||
this.data = initialData;
|
||||
}
|
||||
|
||||
@ -178,7 +180,7 @@ class DataSourceManager extends EventEmitter {
|
||||
}
|
||||
|
||||
// 保证初始化时的第一次编译有值
|
||||
this.data[config.id] = getDefaultValueFromFields(config.fields);
|
||||
this.data[config.id] = this.initialData[config.id] ?? getDefaultValueFromFields(config.fields);
|
||||
|
||||
return;
|
||||
}
|
||||
@ -188,7 +190,7 @@ class DataSourceManager extends EventEmitter {
|
||||
schema: config,
|
||||
request: this.app.request,
|
||||
useMock: this.useMock,
|
||||
initialData: this.data[config.id],
|
||||
initialData: this.initialData[config.id],
|
||||
ObservedDataClass: DataSourceManager.ObservedDataClass,
|
||||
});
|
||||
|
||||
@ -322,6 +324,7 @@ class DataSourceManager extends EventEmitter {
|
||||
public destroy() {
|
||||
this.removeAllListeners();
|
||||
this.data = {};
|
||||
this.initialData = {};
|
||||
this.dataSourceMap.forEach((ds) => {
|
||||
ds.destroy();
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user