diff --git a/src/renderers/Form/File.tsx b/src/renderers/Form/File.tsx index 100ac768..c2769d3c 100644 --- a/src/renderers/Form/File.tsx +++ b/src/renderers/Form/File.tsx @@ -424,6 +424,7 @@ export default class FileControl extends React.Component { newFile.error = error; } else { newFile = obj as FileValue; + newFile.name = newFile.name || file!.name; } files.splice(idx, 1, newFile); this.current = null; diff --git a/src/renderers/Form/index.tsx b/src/renderers/Form/index.tsx index 88c2e956..361c5be5 100644 --- a/src/renderers/Form/index.tsx +++ b/src/renderers/Form/index.tsx @@ -328,6 +328,9 @@ export default class Form extends React.Component { 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 { const hooks: Array<(data: any) => Promise> = 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 还是老的,这个时候