tab切换echarts图表引发的问题 显示不全或错乱显示 在其他tab显示

在项目中曾遇到过这样的问题:多个tab切换echarts图表引发的问题,显示不全或在另一个tab内显示,网上很多说用v-if,试验了多次均无效果,后来使用echarts实例销毁方法dispose和延时就可以了。

以下项目是vue代码

//引入echarts基本模板
var echarts = require('echarts/lib/echarts')

//项目是vue代码
mainTab(id) {
  this.clearEcharts(id)//关键步骤:在这之前销毁其他tab的echarts实例
  if (id === "1") {//第1个tab栏
    setTimeout(() => {
      this.echartsPie()//饼图
    },500)
  }else if (id === "2") {//第2个tab栏
    setTimeout(() => {
      this.initEcharts()//雷达图
    },500)
  }else if (id === "3") {//第3个tab栏
    setTimeout(() => {
      this.configPie()//配置饼图
    },500)
  }
},
//销毁其他tab栏的echarts实例,避免重复显示
  clearEcharts(id = '0') {
    /*第1个tab栏:echarts-pie(饼图)  第2个tab栏:echarts(雷达图)  
      第3个tab栏:config-one 
      主要使用dispose,在切换tab栏之前,销毁其他tab栏的echarts的实例,这样就不有错误显示或重复显示了*/
    var domPie = document.getElementById("echarts-pie")
	var domEcharts = document.getElementById("echarts")
	var domConfigOne = document.getElementById("config-one")
  if (id === '0') {//点击切换至第1个tab栏,销毁其他两个tab的echarts实例
    domConfigOne&&echarts.dispose(domConfigOne)
    domEcharts&&echarts.dispose(domEcharts)
  } else if (id === '1') {
    domPie&&echarts.dispose(domPie)
    domConfigOne&&echarts.dispose(domConfigOne)
  } else if (id === '2') {
    domPie&&echarts.dispose(domPie)
    domEcharts&&echarts.dispose(domEcharts)
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值