2017-01-27 158 views
0

使用Extjs 4.1时,发生间歇性错误。 有时会发生,但大部分时间没有。
当我启动应用程序时,总是出现这种情况,所以我按F5键,一切恢复正常。Extjs间歇性错误


使用this reference调试错误,我注意到它发生在行29590.

错误消息是非常通用:

Uncaught TypeError: Cannot read property 'dom' of null
at constructor.finishRender (ext-all-debug-w-comments.js:29590)
at constructor.finishRenderItems (ext-all-debug-w-comments.js:39796)
at constructor.finishRender (ext-all-debug-w-comments.js:40889)
at constructor.finishRenderChildren (ext-all-debug-w-comments.js:44526)
at constructor.afterRender (ext-all-debug-w-comments.js:29331)
at constructor.callParent (ext-all-debug-w-comments.js:6194)
at constructor.afterRender (ext-all-debug-w-comments.js:36521)
at constructor.finishRender (ext-all-debug-w-comments.js:29625)
at constructor.finishRenderItems (ext-all-debug-w-comments.js:39796)
at constructor.finishRender (ext-all-debug-w-comments.js:40889)

Here is an error print

什么是必须造成这个?

回答

1

我本来是一个评论,但它不适合。

我可以想到的各种各样的原因。他们中的大多数都基于异步调用。你一定要提供更多的信息来回答问题。

很显然,me.el为空,它不应该是。所以首先你必须找到哪个组件导致问题。为此,您应该将29590行换成这样的内容:

try { 
    me.container = Ext.get(me.el.dom.parentNode); 
} catch(e) { 
    console.log(me.id); 
    console.log(me.itemId); 
    console.log(me.xtype); 
    ... 
    console.log(me); 
    throw e; 
} 

这应该会让您知道哪些组件会受到影响。

然后向我们展示该组件的代码。还要检查您是否从组件外部修改该组件的配置,例如从存储加载操作或其他异步任务。另外,您应该查看组件及其祖先的覆盖是否从单独的JS文件加载 - 也许它们有时在加载之前,有时在finishRender被调用之后加载,并修正了这个错误。

这些只是几个可能的原因。

+0

感谢您的回报。正如你所提到的那样,我添加了“try catch”。但错误不再发生。一旦我收到回报,我在这里评论。 –