Extjs 尝试在TreePanel上使用存储失败

Extjs 尝试在TreePanel上使用存储失败,extjs,Extjs,以下代码抛出未捕获的类型错误:无法调用未定义的方法“getRootNode”。据我所知,我的商店没有正确注册,但我不知道为什么 Ext.data.StoreManager.lookup()在小部件的initComponent()或其他任何地方测试时返回未定义的。尝试强制使用storeID,没有区别。其余的代码可以工作,因为如果我强制root:{}小部件可以正常工作 App.js: store/Pages.js: })) view/Page/PageTree.js: controller/Page

以下代码抛出未捕获的类型错误:无法调用未定义的方法“getRootNode”。据我所知,我的商店没有正确注册,但我不知道为什么

Ext.data.StoreManager.lookup()在小部件的initComponent()或其他任何地方测试时返回
未定义的
。尝试强制使用storeID,没有区别。其余的代码可以工作,因为如果我强制
root:{}
小部件可以正常工作

App.js:

store/Pages.js:

}))

view/Page/PageTree.js:

controller/Pages.js:

model/Page.js:


我可能遗漏了一些基本的东西。。我应该如何更正此问题?

您在不调用此函数的情况下重写了存储构造函数。callParent(参数)

可能是因为您在不调用callParent的情况下重写了构造函数?这当然是个问题,建议您作为答案发布。如果你什么都没做,不要忽略它。如果是,请调用父对象并确保传递配置对象。@AmitAviv我正要去,正在进行中。。。问题是在没有callParent的情况下重写构造函数。你想发布答案吗,这样我就可以奖励你回答的分数:)@user918176我会的,谢谢,我只是想你可能有另一个问题,并添加了覆盖来测试它是否存在,并创建了一个新问题。。
Ext.require('Ext.container.Viewport');

Ext.application({
requires: ['Ext.container.Viewport'],
name: 'IW',
appFolder: '/static/js',
models: ['Page'],
stores: ['Pages'],
controllers: ['Pages'],
views: ['page.PageTree'],

launch: function() {
    Ext.create('Ext.container.Viewport', {
        layout: 'absolute',
        items: [
            {
                xtype: 'pagetree', 
                title: 'Pages',
                x: 20,
                y: 20,
                width: 300,
                height: 300
            }
        ]
    });
} });
Ext.define('IW.store.Pages', {
extend: 'Ext.data.TreeStore',
model: 'IW.model.Page',
autoLoad: true,

proxy: {
    type: 'rest',
    url: '/api/pages',
    reader: {
        type: 'json',
        root: 'pages',
        successProperty: 'success'
    }
},

root: {
    expanded: true,
    id: 'frontPage',
    text: 'Front Page'
},

constructor: function() {
    console.log('Constructor of IW.store.Pages');
}
Ext.define('IW.view.page.PageTree', {
extend: 'Ext.tree.Panel',
alias: 'widget.pagetree',
width: 640,
rootVisible: true,

// Does not work
store: 'Pages',
// Works
//root: {},

initComponent: function() {
    //this.store = Ext.data.StoreManager.lookup(this.store);
    //console.log(this.store); // Undefined
    this.callParent();
} });
Ext.define('IW.controller.Pages', {
extend: 'Ext.app.Controller',

init: function() {
    console.log('Init controller');
    this.control({
        'pagepagetree': {
            //
        }
    });
} });
Ext.define('IW.model.Page', {
extend: 'Ext.data.Model',
fields: ['id', 'wiki', 'path', 'title', 'create_user', 'content', 'readacl', 'writeacl', 'adminacl'] });