瀏覽代碼

Catch error if there is an invalid state for instancetracker
restoration.

Ian Rose 7 年之前
父節點
當前提交
b3b0658a1b
共有 1 個文件被更改,包括 4 次插入1 次删除
  1. 4 1
      packages/apputils/src/instancetracker.ts

+ 4 - 1
packages/apputils/src/instancetracker.ts

@@ -316,7 +316,10 @@ class InstanceTracker<T extends Widget> implements IInstanceTracker<T>, IDisposa
     return Promise.all(promises).then(([saved]) => {
       return Promise.all(saved.map(item => {
         const { id, value } = item;
-        const args = (value as any).data;
+        const args = value && (value as any).data;
+        if (args === undefined) {
+          return state.remove(item.id);
+        }
 
         // Execute the command and if it fails, delete the state restore data.
         return registry.execute(command, args).catch(() => state.remove(id));