Я использую этот плагин ниже, чтобы отсортировать гистограмму с накоплением, используя диаграмму js. У меня есть кнопка, которая выполняет следующий скрипт:
function sortInschrijfPrijs() {
myChart.options.plugins.p1 = true;
myChart.update();
myChart.options.plugins.p1 = false;};
Это работает нормально, но когда я снова нажимаю кнопку, я получаю следующую ошибку: "" TypeError: undefined не является объектом (вычисляя 'диаграмму) .data.datasets [vi] .data ') ". Журнал консоли непосредственно перед:" chart.data.datasets [vi] .data [i] = v; "показывает, что есть данные. Надеюсь, что любой может помочь мне здесь, Я действительно застрял. Это плагин
Chart.plugins.register({
id:"p1",
datasets: [],
getData(labels, datasets) {
const sum = [];
for (i = 0; i < datasets[0].length; i++) {
sum.push({
label: labels[i],
data: datasets.map(e => e[i]),
get sum() { // ES6 - getter
return this.data.reduce((a, b) => a + b);
},
});
}
return sum;
},
beforeUpdate(chart) {
chart.data.datasets.forEach((dataset, datasetIndex) => {
this.datasets.push(dataset.data);
});
const data_store = this.getData(chart.data.labels, this.datasets).sort((a,b) => b.sum - a.sum);
data_store.forEach((d,i) => {
chart.data.labels[i] = d.label;
d.data.forEach((v, vi) => {
console.log(chart.data.datasets[vi].data[i]);
chart.data.datasets[vi].data[i] = v;
});
});
}
});