上图:

结构采用栅格布局,左侧图表设置了宽度自适应(forceFit)。然而页面在刚开始刷新的时候,canvas超出了父元素的宽度。如果改变浏览器的大小,window.resize的时候才会触发forceFit: true这个属性,才会自适应屏幕的宽度,这时图表的大小是正常的。

查找诸多解决办法后,经发现,最简单的方法如下

Vue版:在mounted周期函数中,初始化图表之后,加入下面代码

const e = document.createEvent('Event')
    e.initEvent('resize', true, true)
    window.dispatchEvent(e)

React版:在componentDidMount周期函数中加入上述代码(未测试)

另外,还可以参考开源库如https://github.com/KyleAMathews/element-resize-event

不过我在安装element-resize-event组件的时候遇到一些问题,具体没深入研究,有兴趣可以一起探讨

Logo

前往低代码交流专区

更多推荐