问题:
在自定义tooltip设置数据时,通过params.xxx获取数据 出现undefined问题
//图表的数据
pieChartData.map(item =>{
let obj = {
value:item.data,
name:item.url,
rate:Math.round(item.data/totalData * 10000)/100+'%',
}
pieData.push(obj)
})
//通过params.value可以得到浏览量,通过params.rate确实undefined
formatter: function(params) {
var res = ''
res += '<div>'+params.name+' </div>'
res += '<div>'+'浏览量'+':'+params.value +'</div>'
res += '<div>'+'占比'+':'+params.rate+'%'+'</div>'
return res;
}
原因:
错误的将params当作是传入的图表数据 , 通过console.log 发params是图表自身整合的参数
![](https://img-blog.csdnimg.cn/20210903100147560.jpg?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAenh5X3d0bmw=,size_20,color_FFFFFF,t_70,g_se,x_16)
传入的参数放在了params.data里 且图表会自动计算出百分比params.percent
更改后:
formatter: function(params) {
var res = ''
res += '<div>'+params.name+' </div>'
res += '<div>'+'浏览量'+':'+params.value +'</div>'
res += '<div>'+'占比'+':'+params.percent+'%'+'</div>'
return res;
}
在地图项目需要调用params.data中数据的时候,有的省份没有数据 , 如果不进行判断直接调用会出现错误
formatter: function(params) {
var value = params.data?params.data.value:'--'
var rate = params.data?params.data.rate:'--'
var res = ''
res += '<div>'+params.name+' </div>'
res += '<div>'+'浏览量'+':'+ value + '</div>'
res += '<div>'+'占比'+':'+ rate + '</div>'
return res;
}