参考网址:https://www.cnblogs.com/wenjunwei/p/9815290.html
错误:“TypeError: Cannot read property 'init' of undefined”
解决办法:main.js中的import echarts from 'echarts'改为import * as echarts from 'echarts'
关于在vue中使用echarts时碰到的问题: Error Initialize failed invalid dom
原因是dom还没挂载完成,导致报错,这里有几个处理办法:
1.1 这里不要用created(用mounted),created这时候还只是创建了实例,但模板还没挂载完成
1.2 用this.$nextTick(()=>{}) (这个回调函数会在数据挂载更新完之后执行,所以可行)
1.3 使用Promise
mounted() {
// this.$nextTick(()=>{
this.initData()
// })
// // 新建一个promise对象
// let newPromise = new Promise((resolve) => {
// resolve()
// })
// //然后异步执行echarts的初始化函数
// newPromise.then(() => {
// // 此dom为echarts图标展示dom
// this.initData()
// })
},
Echarts显示的出口标签(<div id="hello-world"></div>),一定要设置宽高,否则不会显示
// 指定图表的配置项和数据
var option = {
// 标题
title: {
text: 'ECharts 入门示例',
show: true,
left: 'left',
top: 'bottom',
textStyle: {
color: '#000',
fontSize: 18
},
subtext: '副标题'
},
// 工具箱---图标的工具:保存为图片,还原,数据视图,区域缩放,图表形式的切换
toolbox: {
feature: {
// 保存为图片
saveAsImage: {
show: true,
title: 'save as image'
}
}
},
// 图例
legend: {
//图例的文字要和series中数据的name相同
data: ['销量']
},
// x轴
xAxis: {
//类目(category)
data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
},
// y轴
yAxis: {},
// 数据
series: [{
name: '销量',
//柱状图
type: 'bar',
//数据
data: [5, 20, 36, 100, 10, 20]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
网友评论