Extjs4 使用网格作为组件时ExtJs获取错误

Extjs4 使用网格作为组件时ExtJs获取错误,extjs4,Extjs4,我是ExtJs新手,我尝试使用网格作为组件,但在实例化它时它似乎没有初始化 它抛出以下错误: c is not a constructor http://localhost/xv1/extjs/ext-debug.js Line 6456 错误发生在这一行: var gridVoucher = Ext.create('accountant.gridVoucher'); 以下是完整的代码:正如其他人所提到的,您需要initComponent。此外,您实现网格扩展的方式与我的大不相同。例如,我一

我是ExtJs新手,我尝试使用网格作为组件,但在实例化它时它似乎没有初始化

它抛出以下错误:

c is not a constructor
http://localhost/xv1/extjs/ext-debug.js
Line 6456
错误发生在这一行:

var gridVoucher = Ext.create('accountant.gridVoucher');

以下是完整的代码:

正如其他人所提到的,您需要initComponent。此外,您实现网格扩展的方式与我的大不相同。例如,我一生中从未使用过
Ext.apply
。我不确定你是否做错了,或者只是用了一种正确但不同的方法,但这里是我使用的有效方法

Ext.define('App.teams',
{
    extend: 'App.gridBaseClass',//custom base class extends 'Ext.grid.Panel'  
    initComponent: function(config) 
    {
        this.callParent(arguments);
    },
    property:'default'
    constructor     : function(config)
    {  
         config.columns = [...];
         config.title = 'my title';
         if(!config.width)config.width=300;//something we are allowed to override

         //set other configs as needed, whatever you would send to grid.Panel 

         //example of setting global data from config input
         if(config.property) this.property=config.property;

         this.callParent(arguments);   
    }
});
需要注意的重要事项是callParent和initComponent。我希望这对比较不同的方法有所帮助,或者至少是有趣的

编辑:只是确认一下,使用此方法,我们可以使用与您完全相同的方法创建网格 简单地


实际上,除了@nscrob所说的callParent之外,您还可以通过调用
Ext.widget('accounter.gridVoucher')
,哦,顺便说一句,Ext.create接受一个配置参数但不需要,您可以做到:
Ext.create('accounter.gridVoucher')
,没有任何问题。您好!是的,但是我尝试做的事情,我得到了同样的错误。我真的不知道还能做什么。看起来网格组件没有初始化,我不知道为什么。在网格凭证定义中将构造函数更改为initComponent。
var grid = Ext.create('App.teams');