Javascript 当我在sencha touch中从另一个视图点击后退按钮时,未导航到叶节点

Javascript 当我在sencha touch中从另一个视图点击后退按钮时,未导航到叶节点,javascript,extjs,touch,Javascript,Extjs,Touch,我在我的应用程序中有一个嵌套列表,在叶节点上我有一个地图按钮,我将我的地图视图链接到这个按钮,它很适合地图视图,现在当我点击地图视图的后退按钮时,我得到的是一个空视图,而不是带有以下警告的叶节点 WARN][Ext.Component#constructor]注册id为(mainlist)且已被使用的组件。请确保现有组件已销毁 [WARN][Ext.Component#constructor]使用已使用的id(`detailcard`)注册组件。请确保已销毁现有组件(`Ext.componen

我在我的应用程序中有一个嵌套列表,在叶节点上我有一个地图按钮,我将我的地图视图链接到这个按钮,它很适合地图视图,现在当我点击地图视图的后退按钮时,我得到的是一个空视图,而不是带有以下警告的叶节点

WARN][Ext.Component#constructor]注册id为(
mainlist
)且已被使用的组件。请确保现有组件已销毁

[WARN][Ext.Component#constructor]使用已使用的id(`detailcard`)注册组件。请确保已销毁现有组件(`Ext.component#destroy()`)

[警告][Ext.Component#constructor]正在注册id为(`description`)且已被使用的组件。请确保已销毁现有组件(`Ext.Component#destroy()`)


我的地图按钮

onDetailButtonTap:函数(activeItem){
var记录=此

    Ext.Viewport.animateActiveItem((
                                Ext.create('App.view.MapView')),
                                {
                                    type: 'slide',
                                    direction:'left',
                                }).show();
},
我的地图视图

handler: function(){
                                //var x=document.getElementById("textt");
                                //alert(x.innerHTML);


                                Ext.Viewport.animateActiveItem((
                                Ext.create('App.view.Sections')),
                                {
                                    type: 'slide',
                                    direction:'left',
                                }).show();

                            }

我需要一些重要的帮助

此问题的常见解决方法是使用
itemId
而不是使用
id
来查询组件。使用
itemId
,您可以使用Ext.ComponentQuery.query进行所有查询

Ext.getCmp(“[ID OF THE COMPONENT]”)

(相当于)

Ext.ComponentQuery.query(“#[组件的ITEMID]”)

要深入了解ComponentQuery,请访问以下链接:

例如:

您有一个容器/项目,其中包含
itemId
id
。如下所示

items: [
            {
                xtype: 'titlebar',
                docked: 'top',
                id: 'titleBar',
                itemId: 'barTitle',
                title: 'fooBar'
            },
因此,如果您只想使用id更改标题,您将执行以下操作:

Ext.getCmp('titleBar')。setTitle('Title已使用ID更改');
/'titleBar'是ID

您也可以使用
itemId
执行此操作。为此,您可以编写如下代码行:

Ext.ComponentQuery.query('#barTitle')[0].setTitle('Title Changed using ItemId');
//“barTitle”是项目ID

以上两种方法的作用相同。因此,在您的情况下,您可以使用第二种方法来解决问题。换句话说,您可以使用
Ext.ComponentQuery.query
函数和
itemId


希望这能有所帮助!

@geeniwant:非常感谢……你能给我举一些例子吗?文档对我来说很难理解understand@Geeniwanted:非常感谢,它确实帮助了我,但我用另一种方法解决了问题,我将视图推到容器中,而不是导航到该视图并返回到DetailView…无论如何又是nks。祝你好运:)@Aamin:很高兴你把它修好了!快乐编码:)