在面板之间移动时,我收到以下错误
[WARN][Ext.Component#constructor] Registering a component with a id (`logOutButton`) which has already been used. Please ensure the existing component has been destroyed (`Ext.Component#destroy()`.
我可以回到上一个屏幕,但如果没有出现上述错误,则无法继续前进。
为了解决这个问题,我尝试使用下面的代码,但它不起作用。任何人都可以帮助我吗?
var loginView = Ext.getCmp('login');
if(!loginView){
Ext.getCmp('loginTest2').destroy();
loginView = Ext.create('com.view.Login');
}
Ext.Viewport.setActiveItem('login');
我也尝试过:
if(Ext.getCmp('login')){
Ext.Viewport.setActiveItem('Login');
}else{
Ext.Viewport.setActiveItem(Ext.create('com.view.Login'));
}
这些都不起作用并导致相同的错误和空白屏幕。我正在使用Sencha Touch 2。
答案 0 :(得分:3)
我们可以简单地使用以下行从一个面板导航到另一个面板。
Ext.Viewport.animateActiveItem({ xtype: "cat" }, { type: "slide", direction: "up" });
这里,xtype是我们可以为我们想要显示的面板定义的,比如这个......,
Ext.define('BeLocal.view.LeftCurveList', {
extend: 'Ext.Panel',
**xtype: 'cat',**
config: {
items: [
{
xtype: 'toolbar',
docked: 'top',
width: '100%',
padding:0,
title: 'BeLocal Places',
items:[{
xtype: 'button',
ui: 'back',
text: 'Back',
]
},
]
}
});
答案 1 :(得分:1)
要避免此错误,请不要使用id作为按钮或任何其他项而不是id使用动作配置按钮或使用项目ID。使用itemId销毁组件只需使用此``
Ext.ComponentQuery.query('list[action=diaryselectlist]')[0].destroy();
上面只是摧毁了一个列表,我给了他动作而不是id你可以在这个中给出itemId而不是动作.. 希望你会喜欢这个