簡體   English   中英

未捕獲的類型錯誤:無法讀取未定義的屬性“isSynchronized”

[英]Uncaught TypeError: Cannot read property 'isSynchronized' of undefined

我在排序 ExtJS 網格時遇到問題。 我使用的是 Ext JS 版本 5.1.1.451。

網格加載良好,但是當我嘗試對列進行排序時,出現“未捕獲的類型錯誤:無法讀取未定義的屬性‘isSynchronized’”錯誤。

方法addCls在鼠標移動時觸發,當錯誤發生時, me.getData()返回undefinedme在哪里

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;
    }
});

如果有人有更好的答案,請將其發布,如果效果好,我會予以標記。

我遇到這個問題是因為我根據需要單獨加載的一些映射渲染了不同的值。 如果映射未加載到視圖模型中,則渲染器似乎因該錯誤而失敗。

我通過一些檢查來解決它是否存在它需要的東西:

// on the renderer for the column where I have a combobox editor field
renderer: function(value) {
    var mappings = vm.get('ruleMapping')
    if(!!mappings) {
        var rule = _.find(mappings, ['id', value]
        if(!!rule) {
            return `<a href="${rule.link}>${rule.name}</a>"`
        }
    }
    return 'Setting value'
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM