2021-02-07

项目场景:

vue中使用echarts折线图,需要点击获取数据然后显示对应的折线图


问题描述:

显示折线图时发现太小,只能显示一部分,图表大小并没有自适应,初始化时已经给了resize

this.linechart = echarts.init(this.$refs.linechart);
this.linechart.setOption(this.lineOption);
window.addEventListener("resize", () => {
  this.linechart.resize();
});

2021-02-07


原因分析:

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()
});
上一篇:前端框架杂记


下一篇:动态组件与父子传值的灵活应用 ref控制子组件 props,emit传值