今天使用vue-hcharts 实现饼图的下钻功能。
发现在点击下钻时有报错,但是不影响下钻数据的显示。错误如下:
调试,注释下钻功能代码,发现错误消失,证明是下钻功能代码的问题。
仔细查看代码
mounted(){
Drilldown(HighCharts);
}
没发现代码错误。
在仔细查看错误提示,发现报错提示不是自己编写的代码。
“难道是框架的bug?”我疑惑着,秉着无错无警告的原则,遂搜索之。
经过一番找出,发现早有大神给出了原因与解决办法。在此也记录一番。
报这个错的原因是:Drilldown(Highcharts)被多次调用了,Highcharts 模块以改变Highcharts对象的方式工作。没有为同一模块多次重写Highcharts提供任何的保护措施,因此导致了该错误。
解决办法:
自己增加一个判断进行导入保护,根据大神的建议,结合自己的具体需求,实现如下:
mounted(){
if (!Highcharts.Chart.prototype.addSeriesAsDrilldown) {
Drilldown(Highcharts);
}
}
完美解决问题。
原文地址:here