问题分析:
在渲染时,tab页面为display:none,因此echarts在加载时无法设置width为100%,就会设置width为默认宽度100px。
解决方法:
添加 if判断,tab切换到该页面时才去初始化该echarts图表,但会出现Initialize failed: invalid dom 之 dom加载出现的问题,这是因为引入 Echarts因为在Dom还没加载的时候,option 获取元素,echarts.init(document.queryselect(’#dom’))就开始检测dom,并尝试去获取它,但是在vue中引用echarts的中,发现在模板dom还没加载的时候echarts.init() 就已经开始执行,所以会报错 Initialize failed: invalid dom。根本原因就是dom没加载,echarts没有检测到dom,那么我就让dom加载后再去获取dom,这里就要用到es6语法中的promise
function initEcharts () {
// 新建一个promise对象
let newPromise = new Promise((resolve) => {
resolve()
})
//然后异步执行echarts的初始化函数
newPromise.then(() => {
// 此dom为echarts图标展示dom
echarts.init(DOm)
})
}