设置活动选项卡会产生奇怪的错误

时间:2012-12-10 21:03:08

标签: extjs extjs4

在Extjs 4.1中,我试图设置一个活动选项卡。选项卡面板(和选项卡)的代码如下:

var mainmsg = {
    title: "In Box",
    id: "Main",
    items: [
       ...
    ]
};

var magtags = Ext.create('Ext.tab.Panel',{
width: '100%',
height: 440,
layout: 'fit',
items: [ mainmsg,<other panels> ]
});

我想在事件发生时将“mainmsg”面板设置为活动状态(选中?)(如按下另一个面板中的按钮)。我使用为TabPanel磁贴标记的setActivePanel()方法执行此操作,如下所示:

someEvent(params) {
    magtags.setActiveTab(mainmsg);
    ... do other stuff...
}

但是当我调用setActiveTab()时,我在Firebug上收到以下错误:

  

时间戳:12/10/2012 3:59:25 PM

     

错误:TypeError:comp.getItemId不是函数

我在ExtJS中发现了一个错误吗?或者是否有某种方法可以防止此错误出现在库内部?

有人请指教......

1 个答案:

答案 0 :(得分:1)

因为mainmsg只是一个对象的配置,当它被传递给items配置时,它被创建为一个实际组件,但mainmsg引用仍然只是一个配置。 setActiveTab假设你传递它:

  1. 组件的ID
  2. 组件的索引
  3. 组件实例
  4. 其他几点:

    • 宽度为100%是多余的,不支持
    • 选项卡面板上的“适合”布局是多余的,它会自动使用卡片布局
    • 您可能过度嵌套了标签项,因为标签有标题而没有布局,然后是子项,通常意味着子项应该是标签,而不是嵌套在其他任何内容中。