无法读取属性' getWidth'未定义的

时间:2014-08-26 03:34:41

标签: javascript extjs

我在下面的代码中定义了一个函数,它实际上设置了父组件的宽度并做了布局...这个函数是从4个地方调用的,在一个地方有一个场景,下面的错误来了,你可以看到我有检查未定义但仍然进入此IF并且我得到错误:(请帮助识别问题

Ext Js 3.4.2

错误

  

未捕获的TypeError:无法读取属性' getWidth'未定义的

CODE

if((typeof Ext.getCmp("cmp1") !== 'undefined') && (typeof Ext.getCmp("cmp2") !== 'undefined')){
    Ext.getCmp("cmp1").setWidth(Ext.getCmp("cmp2").getWidth()-2);
    Ext.getCmp("cmp1").doLayout();
    }else{
         //Call self again in 3 sec once render
         //setTimeout("doLayoutofcustomPanel()", 3000);
    }

2 个答案:

答案 0 :(得分:2)

我能够找出问题实际上组件已创建,但元素(EL)最初不存在,因此它能够跨越我的IF检查我需要检查如下,以确保元素存在,我需要获取宽度。这很好用

typeof Ext.getCmp("cmp2").el !== 'undefined'

我正在使用ExtJs 3.4.2

答案 1 :(得分:0)

不确定您使用的是哪个版本的ExtJ,但最好使用itemId

  

itemId在本地范围内限定容器 - 避免潜在的   与Ext.ComponentManager冲突,需要一个唯一的ID

然后query来获取它。