0

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

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

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

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


我的地图按钮

onDetailButtonTap: function(activeItem) {
var record = this;

    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();

                            }

我需要一些认真的帮助

4

1 回答 1

0

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

Ext.getCmp('[组件ID]');

(相当于)

Ext.ComponentQuery.query('#[您的组件的 ITEMID]');

要进一步深入了解 ComponentQuery,请点击以下链接:

http://docs.sencha.com/touch/2.2.0/#!/api/Ext.ComponentQuery

例子:

你有一个带有一个itemId和一个的容器/项目id。像这样,

items: [
            {
                xtype: 'titlebar',
                docked: 'top',
                id: 'titleBar',
                itemId: 'barTitle',
                title: 'fooBar'
            },

因此,如果您只想使用 id 更改标题,您将执行以下操作:

Ext.getCmp('titleBar').setTitle('Title Changed using ID');// 'titleBar' 是 ID

你也可以这样做itemId。为此,您可以编写如下代码行:

Ext.ComponentQuery.query('#barTitle')[0].setTitle('Title Changed using ItemId');

// 'barTitle' 是 ItemId

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

希望这可以帮助!

于 2013-05-23T04:59:45.953 回答