项目场景:
vue中使用echarts折线图,需要点击获取数据然后显示对应的折线图
问题描述:
显示折线图时发现太小,只能显示一部分,图表大小并没有自适应,初始化时已经给了resize
this.linechart = echarts.init(this.$refs.linechart);
this.linechart.setOption(this.lineOption);
window.addEventListener("resize", () => {
this.linechart.resize();
});
原因分析:
Ajax请求获取数据慢,图表已经显示出来了,没有获取到dom的高度和宽度
解决方案:
在获取数据成功之后再调用setOption
//子组件中:
setOption(){
this.linechart = echarts.init(this.$refs.linechart);
this.linechart.setOption(this.lineOption);
window.addEventListener("resize", () => {
this.linechart.resize();
});
}
//父组件中
<line-chart :chartData="xAxis" ref="xchildecharts" />
//获取数据之后
this.$nextTick(function () {
this.$refs.xchildecharts.setOption()
});