Extjs 4.1:如此奇怪的错误:未捕获TypeError:无法读取未定义的属性'items'

时间:2013-10-10 00:44:20

标签: extjs

您可以将示例:app/simple/app/Viewport.js更改为:

您将在Chrome控制台中收到此错误:

  

未捕获的TypeError:无法读取未定义的属性“items”   ext-all.js:18 Ext.cmd.derive.getDockedItems

但如果你对此发表评论:

initComponent : function() {
                            this.callParent();
                        },

一切都好。

Ext.define('AM.view.Viewport', {
        extend : 'Ext.container.Viewport',

        layout: 'border',
        items : [{
                    border : false,
                    region : 'north',
                    xtype : 'progressbar',
                    text : 'Ready',
                    height : 20
                }, {
                    region : 'west',
                    xtype : 'userlist',
                    width:300
                }, {
                    region : 'center',
                    xtype : 'treepanel',
                    initComponent : function() {
                        this.callParent();
                    },
                    columns : [{
                                xtype : 'treecolumn',
                                sortable : false,
                                width : 200,
                                text : 'lala',
                                dataIndex : 'text'
                            }, {
                                flex : 1,
                                sortable : false,
                                text : 'haha',
                                dataIndex : 'pars'
                            }]
                }]
    });

2 个答案:

答案 0 :(得分:1)

1-尝试使用这样的Parents参数调用:

.
.
.
,initComponent : function() {
 this.callParent(arguments);
 },
.
.
.

或者调用超类:

.
.

,initComponent : function() {
     this.callSuper(arguments);
 },
.
.
.

答案 1 :(得分:1)

initComponent仅适用于新定义的组件。在你的情况下,对于AM.view.Viewport'。您不能覆盖作为项目中组件的配置插入的组件的initComponent。如果要为该treepanel定义initComponent,则必须对其进行扩展,然后将此扩展名放入视口的项目中。