Extjs Sencha touch:推动组件一次以上不工作

Extjs Sencha touch:推动组件一次以上不工作,extjs,sencha-touch,sencha-touch-2,sencha-architect,Extjs,Sencha Touch,Sencha Touch 2,Sencha Architect,我有一个列表,当用户单击某个项目时,该列表的处理程序显示在列表项中 我正在使用下一个代码推送表单视图: list.up('navigationview').push({ xtype: 'xEditAddFormPanel', title: 'Edit task', data: record.getData() }); 在第一次单击中,它正在工作,导航显示xEditAddFormPanel 但是,在点击后退按钮(并返回列表屏幕),然后再次按下列表项(再次触发上述代码的原因)之后,现在什么都没有发

我有一个列表,当用户单击某个项目时,该列表的处理程序显示在列表项中 我正在使用下一个代码推送表单视图:

list.up('navigationview').push({
xtype: 'xEditAddFormPanel',
title: 'Edit task',
data: record.getData()
});
在第一次单击中,它正在工作,导航显示
xEditAddFormPanel

但是,在点击后退按钮(并返回列表屏幕),然后再次按下列表项(再次触发上述代码的原因)之后,现在什么都没有发生


如何再次显示表单屏幕?

通常在Sencha中,您必须手动销毁组件。您可能需要执行以下操作:

var formPanel = Ext.create('YourApp.view.EditAddFormPanel', {
    title: 'Edit task',
    data: record.getData()
});

formPanel.onAfter('erased', function(){
    this.destroy();
}, this);

list.up('navigationview').push(formPanel);

我也遇到了同样的问题,原因是第二次将视图推入导航器时,侦听器丢失了。为什么?因为每次你把一个视图推到导航器中,旧的视图都会被破坏,把所有的侦听器都带进坟墓

为了解决这个问题,每当我创建一个我想要推送的新视图时,我都会手动绑定事件:

onXButtonTap: function () {
    var view = Ext.create('MyApp.view.XEntryView');
    //Bind the events you need manually every time you push.
    view.on('myEvent', this.onSubmitNewX);
    this.getXMainView().push(view);
}

当我销毁然后尝试创建并重新添加时,当我使用push函数“UncaughtTypeError:cannotcallmethod'detach'ofnull”时,我得到了以下错误,您认为如何?您是否有
var formPanel=…
或者像我最初在上面所说的那样(现在已更新)?如果是后者,请尝试使用
var
,以使其范围正确。