从extjs面板中删除其他组件后,为什么不显示新添加的组件

时间:2016-02-27 00:03:04

标签: javascript extjs extjs6-classic

在ExtJs 6 classic中,我有一个Ext.panel.Panel,我已经添加了子项,其中一些子项是动态创建的Panel和容器。我保存对这些容器的引用,并将其从父Panel(this)中删除,如下所示:

    if (this.myChildPanels.length > 0) {
        for (var i = this.myChildPanels.length - 1; i >= 0; i--) {
            this.remove(this.myChildPanels[i], true);
        }
        this.remove(this.queryById('finalPanel'), true);
        this.myChildPanels= [];
    }

这些子面板确实消失,不再按预期显示。

但是当我尝试将新容器添加回父面板(this)时,新面板不会显示

    this.add(Ext.create('Ext.container.Container', { 
          width: '200px',
          height: '400px',
          layout: {
             type: 'fit'
          },
          items: [ {
             xtype: 'label',
             text: 'Some stuff'
          }]
    ));

父级正在使用适合的布局,在删除之后和向其添加新组件之前,是否需要在父Panel上调用任何方法?动态添加首次使用,但在删除动态添加的组件(按下按钮后启动)后才能使用。

1 个答案:

答案 0 :(得分:0)

使用this.removeAll()函数删除面板中的所有子元素。添加一些新元素后,尝试调用updateLayout函数。如果这个解决方案没有帮助提供重复你的问题的小提琴示例。