背景: 別のビューで定義されているすべてのビューで同じツールバーを使用しています。このツールバーには 4 つのボタンがあります。このボタンには「id」属性があるため、同じツールバーがビュー全体で使用されるため、ビューからの 1 つのボタンのタップ イベントは、他のビューからも同様のタップ イベントをトリガーします。
私のツールバーは以下の通りです。
Ext.define("WU.view.WUToolBar", {
extend: "Ext.Toolbar",
alias: "widget.wuToolBar",
xtype:"wuToolBar",
config: {
docked : 'bottom',
cls : 'tabBar',
ui:'widgetBottombarUI',
items : [
{
xtype : 'button',
text : 'My Account',
cls : 'profileTabBar',
id : 'myProfileButton',
listeners : {
tap : function(button, e, eOpts) {
console.log('myProfileButton is clicked');
}
},
{
xtype : 'button',
text : 'Help',
cls : 'helpTabBar',
id : 'helpTabButton',
listeners : {
tap : function(button, e, eOpts) {
console.log('helpButton is clicked');
}
},
]
},
});
以下のように、アイテム構成のさまざまなビューにこれを追加しています。
xtype : 'wuToolBar'
したがって、このツールバーはページ間で共有されるため、単一のビューのボタンのタップ イベントは、すべてのビューからタップ イベントを発生させます。getCmp
id 属性を削除すると、アプリケーションは正常に動作しますが、メソッドを使用してアクセスする必要があるため、ボタンに id を割り当てる必要があります。