Vue使用keep-alive导致echarts二次渲染空白的解决方案


原因:

通过检查,发现空白时,控制台无报错,但当前页面的echart图表的canvas height:0。

 

方法一:

在actived函数中,检测echart的canvas是否为0,如果是,证明页面渲染异常,就刷新浏览器

mixin.js

// 选项合并——针对需要keep-alive的页面组件
var mixin = {
    activated: function () {
      var canvasObj = document.getElementsByTagName("canvas");
      if(canvasObj && canvasObj.length>0){
          var canvasH = canvasObj[0].clientHeight;
        //   for(let i = canvasObj.length-1; i>=0;i--){
        //     console.log(canvasObj[i].parentNode.parentNode.id);
        //   }
          if(canvasH==0){
            location.reload();
          }
      }
    }
  }
  export {mixin}
 
.vue
<script>
import {mixin} from '@/js/mixin'
export default {
    mixins: [mixin],
}
</script>
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM