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 dataSourceMap = new Map<string, DataSource & Record<string, any>>();
|
||||||
|
|
||||||
public data: DataSourceManagerData = {};
|
public data: DataSourceManagerData = {};
|
||||||
|
public initialData: DataSourceManagerData = {};
|
||||||
public useMock?: boolean = false;
|
public useMock?: boolean = false;
|
||||||
|
|
||||||
constructor({ app, useMock, initialData }: DataSourceManagerOptions) {
|
constructor({ app, useMock, initialData }: DataSourceManagerOptions) {
|
||||||
@ -87,6 +88,7 @@ class DataSourceManager extends EventEmitter {
|
|||||||
this.useMock = useMock;
|
this.useMock = useMock;
|
||||||
|
|
||||||
if (initialData) {
|
if (initialData) {
|
||||||
|
this.initialData = initialData;
|
||||||
this.data = 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;
|
return;
|
||||||
}
|
}
|
||||||
@ -188,7 +190,7 @@ class DataSourceManager extends EventEmitter {
|
|||||||
schema: config,
|
schema: config,
|
||||||
request: this.app.request,
|
request: this.app.request,
|
||||||
useMock: this.useMock,
|
useMock: this.useMock,
|
||||||
initialData: this.data[config.id],
|
initialData: this.initialData[config.id],
|
||||||
ObservedDataClass: DataSourceManager.ObservedDataClass,
|
ObservedDataClass: DataSourceManager.ObservedDataClass,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -322,6 +324,7 @@ class DataSourceManager extends EventEmitter {
|
|||||||
public destroy() {
|
public destroy() {
|
||||||
this.removeAllListeners();
|
this.removeAllListeners();
|
||||||
this.data = {};
|
this.data = {};
|
||||||
|
this.initialData = {};
|
||||||
this.dataSourceMap.forEach((ds) => {
|
this.dataSourceMap.forEach((ds) => {
|
||||||
ds.destroy();
|
ds.destroy();
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user