store 报错处理

This commit is contained in:
2betop 2020-03-05 14:57:16 +08:00
parent 904864cb47
commit 96cfb18c9f
2 changed files with 9 additions and 1 deletions

View File

@ -424,6 +424,7 @@ export default class FileControl extends React.Component<FileProps, FileState> {
newFile.error = error;
} else {
newFile = obj as FileValue;
newFile.name = newFile.name || file!.name;
}
files.splice(idx, 1, newFile);
this.current = null;

View File

@ -328,6 +328,9 @@ export default class Form extends React.Component<FormProps, object> {
async onInit() {
const {onInit, store, submitOnInit} = this.props;
if (!isAlive(store)) {
return;
}
// 先拿出来数据,主要担心 form 被什么东西篡改了,然后又应用出去了
// 之前遇到过问题,所以拿出来了。但是 options loadOptions 默认值失效了。
@ -339,7 +342,11 @@ export default class Form extends React.Component<FormProps, object> {
const hooks: Array<(data: any) => Promise<any>> = this.hooks['init'] || [];
await Promise.all(hooks.map(hook => hook(data)));
if (isAlive(store) && store.initedAt !== initedAt) {
if (!isAlive(store)) {
return;
}
if (store.initedAt !== initedAt) {
// 说明,之前的数据已经失效了。
// 比如 combo 一开始设置了初始值,然后 form 的 initApi 又返回了新的值。
// 这个时候 store 的数据应该已经 init 了新的值。但是 data 还是老的,这个时候