エラーが発生する
[WARN][Ext.Component#constructor] Registering a component with a id (`contentview`) which has already been used. Please ensure the existing component has been destroyed (`Ext.Component#destroy()`.
私の問題は、jsonを使用して連絡先ページを直接読み込んでいる場合、正常に表示され、ontapも正常に機能していることです。しかし、ログインが成功した場合にログインページを連絡先ページにリダイレクトするように、この連絡先ページの前にログイン画面を追加するとします。その状態では、そのリストのontapでエラーが発生します。
連絡先ビューで連絡先ビューからリストを取得しています。連絡先ビューからリストアイテムを選択すると、表示ページで詳細を取得する必要があります。それが私がやろうとしていることですが、エラーが発生した場合はこれを確認してください。
私のビューファイルは
Ext.define(
'AddressBook.view.Contacts',
{
extend : 'Ext.List',
xtype : 'contacts',
requires: ['AddressBook.view.contact.Show'],
config : {
title : 'Address Book',
cls : 'x-contacts',
store : 'Contacts',
itemTpl : [
'<div class="deal"><div class="headshot" style="background-image:url({offer_image});"></div>',
'<div class="name">{title}, {location}</div>',
'<div class="endtime">{startTime}</div></div>'].join(''),
items : [{
xtype : "toolbar",
docked:"top",
title : '<img src="resources/images/logo.png" width="130px"/> '
}]
}
});
リストアイテムの詳細を表示する:
Ext.define('AddressBook.view.contact.Show', {
extend: 'Ext.Container',
xtype: 'contact-show',
config: {
title: 'Information',
baseCls: 'x-show-contact',
layout: 'vbox',
items: [
{
id: 'contentview',
tpl: [
'<div class="top">',
'<div class="headshot" style="background-image:url({offer_image});"></div>',
'<div class="name">{location} {lastName}<span>{title}</span></div>',
'</div>'
].join('')
}
],
record: null
},
updateRecord: function(newRecord) {
if (newRecord) {
this.down('#contentview').setData(newRecord.data);
}
}
});
コントローラのontapイベント:
onContactSelect: function(list, index, node, record) {
this.showContact = Ext.create('AddressBook.view.contact.Show');
// Bind the record onto the show contact view
this.showContact.setRecord(record);
// Push the show contact view into the navigation view
this.getMain().push(this.showContact);
},