Ошибка Amcharts5 при вызове функции для рисования диаграммы во второй раз

#amcharts #amcharts5

#amcharts #amcharts5

Вопрос:

Я вызываю эту функцию, чтобы нарисовать пирог в div с идентификатором «анимация-пончик», который находится внутри модального окна.

В первый раз это работает, но при нажатии во второй раз я получил эти ошибки, и диаграмма не отображается

  1. Неперехваченная ошибка: У вас не может быть нескольких корней на одном узле DOM
  2. Ошибка неперехваченного типа: Не удается прочитать свойства неопределенного (чтение ‘_display’)

В любом случае, я не думаю, что эти ошибки приводят к тому, что диаграмма не отображается во второй раз, как и в первый, даже с этими ошибками —

Спасибо

Вот моя функция

 function donutam(donutdatalabel,donutdataseries){ //Pie View; root = am5.Root.new("animating-donut");  // Set themes root.setThemes([  am5themes_Animated.new(root) ]);   // Create chart var chart = root.container.children.push(am5percent.PieChart.new(root, {  layout: root.verticalLayout }));   // Create series var series = chart.series.push(am5percent.PieSeries.new(root, {  valueField: "value",  categoryField: "category" }));   // Set data var serie = donutdataseries.split(','); var labels = donutdatalabel.split(','); var seriesarr = []; for (i = 0; i lt; serie.length; i  ) {  seriesarr[i] = {value: serie[i], category: labels[i]}; }   series.data.setAll(seriesarr);   // Create legend var legend = chart.children.push(am5.Legend.new(root, {  centerX: am5.percent(50),  x: am5.percent(50),  marginTop: 15,  marginBottom: 15, }));  legend.data.setAll(series.dataItems);   // Play initial series animation series.appear(1000, 100);  

}

Ответ №1:

Вы можете удалить корень, если он не равен нулю:

 if (root !== null) root.dispose();  

Комментарии:

1. Спасибо за ваш ответ, Когда я попробовал ваше предложение, я получил эту ошибку, Не удается прочитать свойства неопределенного (чтение «dispose»)