获取错误说“注册已使用的具有id(`form1`)的组件”

时间:2012-05-08 16:02:27

标签: cordova sencha-touch extjs sencha-touch-2

当我点击同一个按钮超过1次时,我收到此错误。这表明了什么,我应该怎样做才能防止它;

[WARN] [WARN][Ext.Component#constructor] Registering a component with a id (`form1`) which has already been used. Please ensure the existing component has been destroyed (`Ext.Component#destroy()`.
2012-05-08 21:29:56.869 ProjectSeal[870:fb03] [WARN] [WARN][Ext.Component#constructor] Registering a component with a id (`new-note-btn1`) which has already been used. Please ensure the existing component has been destroyed (`Ext.Component#destroy()`.

根据错误/警告,我如何destroy组件?

更新

Ext.define('app.view.Contact',{
           extend:'Ext.form.Panel',
           xtype:'contactform',
           id: 'form1',
....

如何让Sencha将id添加到我的代码中?

更新

  

[WARN] [DEPRECATE] [匿名] itemId已弃用为属性   直接在Component上。请把它放在配置对象里面,然后   使用“this.config.itemId”

检索它

2 个答案:

答案 0 :(得分:3)

当用户单击按钮时,您很可能创建窗口或表单对象。在创建过程中,您似乎正在为此组件分配硬编码id

您需要确保以前使用过的表单已被销毁(例如,检查closeAction属性)或者不自行分配id属性并让Sencha执行此操作。

答案 1 :(得分:1)

[WARN] [DEPRECATE] [匿名] itemId直接在Component上作为属性使用。请将它放在config对象中,并使用“this.config.itemId”

检索它

将itemId放在config中。

例如:

config: {

    itemId: 'form1',

    // other config options

}