#开门见山,先告诉你我遇到的问题原因
##我的原因是因为每次更新数据后都对uChart的对象进行了init初始化
我的代码:
// 这是我放在created()里的函数。用来初始判断是否存在图表实例。没有就initRingChart,
//有就不再重新实例化图表
firstInitChart() {
if (this.canvaRing) {
this.getData();
} else {
this.$api(
'orgGoods.listGoodsSummaryWithTwoPercentDown',
this.listQuery
).then(res => {
uni.hideLoading(); //请求之后,要把默认的加载中提示做隐藏处理
this.tempList = res.data;
this.tempList.forEach(res => {
this.dataChartData.push({
name: res.type,
data: res.count
});
});
this.initRingChart('canvasRing-a', this.dataChartData);
});
}
},
//下面是我的部分更新图表数据的方法
getData() {
this.tempList = [];
this.dataChartData = [];
this.sum = 0;
switch (this.currentType) {
case 1:
this.$api(
'orgGoods.listGoodsSummaryWithOrderCount',
this.listQuery
).then(res => {
uni.hideLoading(); //请求之后,要把默认的加载中提示做隐藏处理
this.tempList = res.data;
this.tempList.forEach(res => {
this.dataChartData.push({
name: res.type,
data: res.count
});
this.sum += res.count;
});
// 注意下面这里,与uChart官网的文档中对应
this.canvaRing.updateData({
series: this.dataChartData,
title: { name: '商品总数' },
subtitle: { name: this.sum }
});
});
break;
总结一下: 要认真看官方文档!!!