出现问题的情况:
borderlayout布局;左侧菜单栏点击之后在center部分的tabpanel新增一个标签页,关闭当前标签页,再次点击左侧菜单,发现提示Ext.container.Container.add(): Cannot add destroyed item 'XXX' to Container 'YYY'错误。
为什么会出现这样的错误:
在定义布局panel时,除了使用items属性添加子组件外,还在initCompontent方法里用Ext.create('xxx')创建了一个组件;用此种方式创建对象时,代表着所有的类将会共享这个组件直到组件所在的窗口被关闭才会销毁。
解决方案:
将Ext.create('xxx')换成 {xtype:'xxx'}延时加载的方式。
总结:
在定义类的时候,少用new xxx() or Ext.create('xxx')方式。