Sencha touch 在Sencha Touch中自动创建-为什么需要它?

Sencha touch 在Sencha Touch中自动创建-为什么需要它?,sencha-touch,sencha-touch-2,Sencha Touch,Sencha Touch 2,我在Sencha Touch文档中看到了这段代码。如果“自动创建”设置为false,infopanel视图会发生什么情况?我不知道为什么必须指定autoCreate。如果使用对象类型ref而不是简单类型,那么它在幕后也不能做到这一点吗 refs: { main: '#mainTabPanel', loginButton: '#loginWindow button[action=login]', infoPanel: { selector: 'infopa

我在Sencha Touch文档中看到了这段代码。如果“自动创建”设置为false,infopanel视图会发生什么情况?我不知道为什么必须指定autoCreate。如果使用对象类型ref而不是简单类型,那么它在幕后也不能做到这一点吗

refs: {
    main: '#mainTabPanel',
    loginButton: '#loginWindow button[action=login]',

    infoPanel: {
        selector: 'infopanel',
        xtype: 'infopanel',
        autoCreate: true
    }
}

我只是在我的一个项目中替换了几行代码以使用
autoCreate

这是我过去常做的事:

refs: {
  detailsView: 'detailsview'
},

...

var view = (!this.getDetailsView()) ? Ext.create('App.view.DetailsView') : this.getDetailsView();
nav.push(view);
我曾经检查视图是否是通过调用getter
this.getDetailsView()
创建的。如果它没有被创建,我就创建了它,否则我只是使用了对它的引用

现在,我正在使用autoCreate,这就是我要做的:

refs: {
  detailsView: {
    selector: 'detailsview',
    xtype: 'detailsview',
    autoCreate: true
  }
},

...

var view = this.getDetailsView()
nav.push(view);
调用getter
this.getDetailsView()
将使用对已创建组件的引用或创建它


希望这有帮助

我刚刚在我的一个项目中替换了几行代码以使用
自动创建

这是我过去常做的事:

refs: {
  detailsView: 'detailsview'
},

...

var view = (!this.getDetailsView()) ? Ext.create('App.view.DetailsView') : this.getDetailsView();
nav.push(view);
我曾经检查视图是否是通过调用getter
this.getDetailsView()
创建的。如果它没有被创建,我就创建了它,否则我只是使用了对它的引用

现在,我正在使用autoCreate,这就是我要做的:

refs: {
  detailsView: {
    selector: 'detailsview',
    xtype: 'detailsview',
    autoCreate: true
  }
},

...

var view = this.getDetailsView()
nav.push(view);
调用getter
this.getDetailsView()
将使用对已创建组件的引用或创建它


希望这对您有所帮助

因此,如果您想做一些与常规稍有不同的事情,我想您应该将autoCreate设置为false?您不需要将其设置为false。使用一个带有简单选择器的引用即可。好的,谢谢,难道他们没有摆脱自动创建,而不是在创建选择器对象时自动完成吗?所以我想如果你想做一些与规范稍有不同的事情,你应该将自动创建设置为false?你不需要将其设置为false。只需使用一个带有简单选择器的引用即可。好的,谢谢,难道他们没有摆脱自动创建,而不是在创建选择器对象时自动完成吗?