Uncaught TypeError:a.doDrilldown is not a function

今天使用vue-hcharts 实现饼图的下钻功能。

发现在点击下钻时有报错,但是不影响下钻数据的显示。错误如下:


Uncaught TypeError:a.doDrilldown is not a function_第1张图片

调试,注释下钻功能代码,发现错误消失,证明是下钻功能代码的问题。

仔细查看代码

mounted(){

Drilldown(HighCharts);

}

没发现代码错误。

在仔细查看错误提示,发现报错提示不是自己编写的代码。

“难道是框架的bug?”我疑惑着,秉着无错无警告的原则,遂搜索之。

经过一番找出,发现早有大神给出了原因与解决办法。在此也记录一番。

报这个错的原因是:Drilldown(Highcharts)被多次调用了,Highcharts 模块以改变Highcharts对象的方式工作。没有为同一模块多次重写Highcharts提供任何的保护措施,因此导致了该错误。

解决办法:

自己增加一个判断进行导入保护,根据大神的建议,结合自己的具体需求,实现如下:

mounted(){

if (!Highcharts.Chart.prototype.addSeriesAsDrilldown) {

    Drilldown(Highcharts);

}

}

完美解决问题。

原文地址:here

你可能感兴趣的:(Uncaught TypeError:a.doDrilldown is not a function)