У меня есть приложение Highcharts в Angular7.
Когда я пытаюсь уничтожить круговую диаграмму, вызывая destroy () в ngOnDestroy, она выдает Uncaught TypeError: Невозможно прочитать свойство 'forExport' из undefined в a.Chart.destroy (highcharts.js: 293)
Package.json
"@angular/core": "7.2.12",
"highcharts": "7.1.1",
"highcharts-angular": "2.4.0",
HTML
<highcharts-chart
[Highcharts]="Highcharts"
[options]="chartOptions"
[update]="false"
[runOutsideAngular]="true"
style="width: 300px; height: 280px; display: block;"
></highcharts-chart>
Машинопись
export class MyChartComponent implements OnInit, AfterViewInit, OnDestroy {
public Highcharts = Highcharts; // required
private chartRef;
public chartOptions = {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie',
events: this.getHighchartsEvents()
},
// [...]
}
private getHighchartsEvents() {
const self = this;
return {
load: function(event) {
self.chartRef = this;
}
}
}
ngOnDestroy(): void {
if(this.chartRef) {
this.zone.runOutsideAngular(() => {
this.chartRef.destroy();
// Uncaught TypeError: Cannot read property 'forExport' of undefined
// at a.Chart.destroy (highcharts.js:293)
});
}
}
Пример песочницы: https://codesandbox.io/s/4r4zm77lm4
Если диаграмма уничтожается кнопкой do Destroy
(которая находится внутри компонента с диаграммой), она работает нормально.
Когда диаграмма уничтожается путем удаления компонента посредством установки chartVisible в false (by 'Кнопка «Скрыть»), затем выполняется ngOnDestroy, который .destroy () выдает ошибку.
Пожалуйста, сообщите.Заранее спасибо.