extjs框架采坑系列1:window窗口关掉但是id仍存在

最近在公司参与接口自动化工具的开发,小白一个,一路全靠百度支撑到现在。在这里记录一下自己遇到过的问题,希望能给以后采坑的人一些帮助吧

我实现的是一个导入excel的功能,并把数据展示在页面的gride里。功能现在已经实现。有什么问题或者理解不对的可以相互交流学习o( ̄︶ ̄)o

问题:
当点击导入按钮的时候,弹出一个window窗体,关闭窗体后再次点击导入按钮无法正常显示

extjs框架采坑系列1:window窗口关掉但是id仍存在_第1张图片
查看console打印日志发现有错误,提示Registering duplicate component id "Import_window"(window组件的id为Import_window),意思是注册了id为Import_window的重复组件。
即使在关闭窗体的时候选择使用close()销毁对象,但窗体仍然存在,再次点击的时候仍报注册重复id的组件

    cancleBtnClick: function () {
        var me = Ext.getCmp('Import_window');
        // me.hide();
        me.close();
    }

那干脆就在关闭窗体的时候选择不销毁对象,而是隐藏掉窗体,点击导入按钮实例化window的时候做个判断,如果窗体不存在就创建一个窗体,如果窗体存在就使用show()方法显示窗体。
这样就解决了因为ID的冲突造成的异常。

    //创建窗体的时候做判断
        if(Ext.getCmp('Import_window')==null){
            var importWindow = Ext.widget('importTestCase');
        }else{
            console.log("11111");
            Ext.getCmp('Import_window').show();
        }
   //取消按钮对应的点击事件
    cancleBtnClick: function () {
        var me = Ext.getCmp('Import_window');
        me.hide();
    }
    //窗体window的配置项
    id:'Import_window',
    closeAction:'hide',//关闭按钮隐藏

你可能感兴趣的:(问题总结)