Sencha touch 2 Sencha Touch错误:无法读取属性';dom';空的

Sencha touch 2 Sencha Touch错误:无法读取属性';dom';空的,sencha-touch-2,Sencha Touch 2,调试一些Sencha Touch 2代码,我将其归结为以下内容。为什么这样不行?更重要的是,为什么不应该呢?显然,view、listOne和listTwo都在范围内,但点击listOne项,然后返回,然后再次点击listOne项会导致错误。导航视图返回时是否删除引用 var view = Ext.create('Ext.NavigationView', { xtype:'myview', fullscreen: true }); var listTwo = Ext.create

调试一些Sencha Touch 2代码,我将其归结为以下内容。为什么这样不行?更重要的是,为什么不应该呢?显然,view、listOne和listTwo都在范围内,但点击listOne项,然后返回,然后再次点击listOne项会导致错误。导航视图返回时是否删除引用

var view = Ext.create('Ext.NavigationView', {
    xtype:'myview',
    fullscreen: true
});

var listTwo = Ext.create('Ext.List', {
    store: {
        fields: ['name'],
        data: [
            {name: 'Doeth'},
            {name: 'Smith'},
            {name: 'Johnson'},
            {name: 'Stevens'}
        ]
    },
    itemTpl: '{name}'
});


var listOne = Ext.create('Ext.List', {
    store: {
        fields: ['name'],
        data: [
            {name: 'Cowper'},
            {name: 'Everett'},
            {name: 'University'},
            {name: 'Forest'}
        ]
    },
    itemTpl: '{name}',
    listeners: {
       itemtap: function (me, index, target, record, e, eOpts ){
           view.push(listTwo);
        }
    }
});

Ext.Viewport.add(view);
view.push(listOne);

查看Sencha的源代码,我确认这是预期的行为:
Ext.NavigationView
,按下back按钮调用其
pop()
方法。 这反过来调用NavigationView上的
remove()
,并将活动视图作为参数
remove()
继承自
Ext.Container
,可以选择销毁对象。默认情况下,
autoDestroy
config为true,这解释了发生的情况

在导航视图中将
autoDestroy
设置为false以修复错误


查看了Sencha的源代码,我确认这是预期的行为:
Ext.NavigationView
,按下back按钮调用其
pop()
方法。 这反过来调用NavigationView上的
remove()
,并将活动视图作为参数
remove()
继承自
Ext.Container
,可以选择销毁对象。默认情况下,
autoDestroy
config为true,这解释了发生的情况

在导航视图中将
autoDestroy
设置为false以修复错误


这些行为似乎很奇怪。当然不是我所期望的。因此,默认情况下,它们会破坏视图,但只会再次重建视图(在嵌套列表的情况下),例如。。。感谢您的洞察力。这很有意义,这样可以节省内存,而不是让视图保持已分配但未使用的状态。当然,总是要在销毁/创建视图的计算时间和由于高内存使用而导致的性能损失之间找到折衷点。如果不会导致错误,这是有意义的。这似乎是不正确的部分。这些行为似乎很奇怪。当然不是我所期望的。因此,默认情况下,它们会破坏视图,但只会再次重建视图(在嵌套列表的情况下),例如。。。感谢您的洞察力。这很有意义,这样可以节省内存,而不是让视图保持已分配但未使用的状态。当然,总是要在销毁/创建视图的计算时间和由于高内存使用而导致的性能损失之间找到折衷点。如果不会导致错误,这是有意义的。这似乎是不正确的部分。