切换选项卡时,EXTJS存储相关的错误:ext-all-debug.js:53117未捕获的TypeError:无法读取null的'isSynchronous'属性

时间:2018-11-06 12:44:24

标签: extjs

我有一个简化的小提琴,显示了我所看到的问题:

https://fiddle.sencha.com/#view/editor&fiddle/2nbs

该应用程序有两个选项卡。每个选项卡都包含一个由树面板和网格组成的组件实例。单击树中的一个节点将填充网格。如果您在单击任一树中的节点之前访问了两个选项卡,则应用程序将运行。但是,如果单击第一个选项卡中的树节点并填充网格,则访问第二个选项卡将引发此错误:

ext-all-debug.js:53117未捕获的TypeError:无法读取null的属性'isSynchronous'

at constructor.loadsSynchronously (ext-all-debug.js:53117)
at constructor.createMask (ext-all-debug.js:106694)
at constructor.onRender (ext-all-debug.js:105766)
at constructor.finishRender (ext-all-debug.js:38449)
at constructor.finishRenderItems (ext-all-debug.js:76675)
at constructor.finishRender (ext-all-debug.js:76992)
at constructor.finishRenderChildren (ext-all-debug.js:79000)
at constructor.afterRender (ext-all-debug.js:37909)
at constructor.finishRender (ext-all-debug.js:38463)
at constructor.finishRenderItems (ext-all-debug.js:76675)

我正在extjs 5.1.3中构建,但是在最新版本(6.6)中进行了复制。我怀疑我遗漏了一些显而易见的东西...

1 个答案:

答案 0 :(得分:0)

我发现了问题...

破坏旧存储的代码也破坏了ext-store-empty-所有空网格等使用 所以我这样做了:

if (oldStore && oldStore.storeId !== 'ext-empty-store') {
                   oldStore.destroy();
               }

可能有一种更整洁的方法,但这是可行的。