echarts 多个图表自适应大小
背景是每个图表都是单个的组件,最后引用到一个VUE文件里,但是图表的大小有问题,需要自适应大小。
一个简单的问题,结果花费了我一小时,都怪我太菜😂,看看我的踩坑之路,看看你是否有同感
1.首先是网上查到的
// 监听 window 窗口大小变化的事件
window.onresize = function() {
// 调用 echarts 实例对象的 resize 方法
myCharts.resize()
}
// 或者简写
// window.onresize = myCharts.resize
2.用了之后发现不行,只有一个图表自适应了,其他不变,所以又找找资源,有了这个
let myChart = this.$echarts.init(****)
myCharts.setOption(option)
//多个图表自适应时,为每个图表都添加以下部分的代码
window.addEventListener('resize', function () {
myChart.resize()
})
3.我觉得这次总没错了吧,很对啊,结果我一试,还是不行,抓破了脑袋都不知道是啥出了问题,为啥别人能行到我这就不行了,抓狂。。。倒腾了很久,才发现问题,看我代码
this.lineChart.setOption(option)
window.addEventListener("resize", function () {
this.lineChart.resize();
});
是this的指向出了问题,我改了改
let that=this
this.lineChart.setOption(option)
window.addEventListener("resize", function () {
that.lineChart.resize();
});
这样就行了,没问题了,几个图表都加上这段代码都能自适应了。
只能说我太菜了,欲哭无泪。。。