我有一个简化的小提琴,显示了我所看到的问题:
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)中进行了复制。我怀疑我遗漏了一些显而易见的东西...
答案 0 :(得分:0)
我发现了问题...
破坏旧存储的代码也破坏了ext-store-empty-所有空网格等使用 所以我这样做了:
if (oldStore && oldStore.storeId !== 'ext-empty-store') {
oldStore.destroy();
}
可能有一种更整洁的方法,但这是可行的。