Javascript 未捕获类型错误:无法读取属性';i同步';未定义的
我对ExtJS网格排序有问题。我使用的是ExtJSVersion5.1.1.451 网格加载良好,但当我尝试对列进行排序时,会出现“uncaughttypeerror:cannotreadproperty'isSynchronized'of undefined”错误 方法Javascript 未捕获类型错误:无法读取属性';i同步';未定义的,javascript,extjs,grid,extjs5,Javascript,Extjs,Grid,Extjs5,我对ExtJS网格排序有问题。我使用的是ExtJSVersion5.1.1.451 网格加载良好,但当我尝试对列进行排序时,会出现“uncaughttypeerror:cannotreadproperty'isSynchronized'of undefined”错误 方法addCls在鼠标移动时触发,当出现错误时,me.getData()返回undefined,其中me为 constructor $observableInitialized: true component: constructo
addCls
在鼠标移动时触发,当出现错误时,me.getData()
返回undefined
,其中me
为
constructor
$observableInitialized: true
component: constructor
config: Object
destroy: () {}
dom: null
el: null
events: Object
hasListeners: statics.prepareClass.HasListeners
id: "ext-quicktips-tip"
initConfig: () {}
initialConfig: Object
isDestroyed: true
lastBox: null
managedListeners: Array[0]
shadow: null
这是发生错误的addCls
方法:
addCls: function(names, prefix, suffix) {
var me = this,
elementData = me.getData(),
hasNewCls, dom, map, classList, i, ln, name;
if (!names) {
return me;
}
if (!elementData.isSynchronized) {
me.synchronize();
}
以前有人遇到过这个问题吗?这是一个已知的问题还是我做错了什么
谢谢我已经重写了handleMouseDown方法,并注释掉了快速提示部分
Ext.override(Ext.dd.DragDropManager, {
handleMouseDown: function (e, oDD) {
var me = this,
xy, el;
me.isMouseDown = true;
//if (Ext.quickTipsActive) {
// Ext.tip.QuickTipManager.ddDisable();
//}
me.currentPoint = e.getPoint();
if (me.dragCurrent) {
me.handleMouseUp(e);
}
me.mousedownEvent = e;
me.currentTarget = e.getTarget();
me.dragCurrent = oDD;
el = oDD.getEl();
Ext.fly(el).setCapture();
xy = e.getXY();
me.startX = xy[0];
me.startY = xy[1];
me.offsetX = me.offsetY = 0;
me.deltaX = me.startX - el.offsetLeft;
me.deltaY = me.startY - el.offsetTop;
me.dragThreshMet = false;
}
});
如果有人有更好的答案,发布它,如果它好,我会标记它。这意味着
elementData
不是对对象的引用;它是未定义的。是的,我理解为什么会发生这种情况以及何时发生这种情况。我想问的是,是否有人遇到了这个特定的错误(这在ExtJS开发人员中很常见),以及他们是如何处理的。我不想仅仅为了跳过这个错误而更改源代码,我认为这不是一个好的做法;我想你应该沿着这条链回去,找出什么样的假设/期望没有被某个配置或初始化所满足。