获取我的 tabpanel 组件,但无法使用 add 添加选项卡

Get my tabpanel component but cant use add to add a tab

我在视图中有一个选项卡面板 makemoney.js。我想在我的控制器 addtab.js 中编写代码。但是我在 chrome 控制台中遇到错误。

而且我发现 Ext.ComponentQuery.query('itemId')[0] return 类型是组件,但是 tabpanel 的添加方法必须使 container.add 是 container.is 它 cause.if 对,我可以更改什么

我的makemoney.js代码:

Ext.define('ylp2p.view.makemoney',{
extend: 'Ext.Panel',
xtype: 'makemoney',
requires: [
    'Ext.Toolbar',
    'Ext.tab.Panel'
],

config:{
    layout: 'vbox',
    items:[
        {
            xtype: 'toolbar',
            docked: 'top',
            title: '111'
        },
        {
            xtype: 'tabpanel',//-----here is my tappanel
            itemId: 'tabfirst',
            flex: 1,
            tabBar: {
                layout: {
                    pack: 'center'
                }
            }
        }
    ]
}
});

和我的控制器代码:

Ext.define('ylp2p.controller.addtab',{
extend: 'Ext.app.Controller',
launch: function(){
    var moneytab = Ext.ComponentQuery.query('.makemoney #tabfirst')[0];
    //i think i get the component alerdy
    var myPanel = Ext.create('Ext.Panel', {
        html: 'This will be added to a Container'
    });
    //and write a panel
    moneytab.add([myPanel]);
    //make the panel into the tap.i dont why it not work
}
});

我在 chrome 中的控制台出现错误:

Uncaught Error: [ERROR][Ext.Container#doAdd] Adding a card to a tab container without specifying any tab configuration

您的选择器不正确,这就是错误的原因。

var moneytab = Ext.ComponentQuery.query('.makemoney #tabfirst')[1];

moneytab = undefined;

改用这个:

var moneytab = Ext.ComponentQuery.query('tabpanel #tabfirst')[0];

它会起作用

var moneytab = Ext.ComponentQuery.query('makemoney #tabfirst')[0];
    var myPanel = Ext.create('Ext.Panel', {
        html: 'This will be added to a Container',
        title: 'Yourtitle'
    });
    //and write a panel
    moneytab.add(myPanel);