Компонент Vue Chart.js не отображает
Панель инструментов получает массив данных с 10 элементами как chdata
имущество. Каждые 0.5s массив обновляется новым элементом. Я вижу, что данные меняются в наборе данных, но диаграмма не отображается.
Также получаю эту ошибку Uncaught TypeError: Cannot read property 'skip' of undefined
когда зависать
//LineChart.vue
<script>
import {
Line,
mixins
} from 'vue-chartjs'
export default Line.extend({
mixins: [mixins.reactiveData],
props: ["options"],
data() {
return {
chartData: {
labels: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
datasets: [{
label: 'Data One',
borderColor: '#e67e22',
pointBackgroundColor: '#e67e22',
borderWidth: 1,
pointBorderColor: '#e67e22',
backgroundColor: 'transparent',
data: this.$root.$data.chdata
}]
},
}
},
mounted() {
this.renderChart(this.chartData, {
responsive: true,
maintainAspectRatio: false,
animation: false,
//Boolean - If we want to override with a hard coded scale
scaleOverride: true,
//** Required if scaleOverride is true **
//Number - The number of steps in a hard coded scale
scaleSteps: 20,
//Number - The value jump in the hard coded scale
scaleStepWidth: 10,
//Number - The scale starting value
scaleStartValue: 0
});
},
watch: {
chartData: function() {
this._chart.destroy()
this.renderChart(this.data, this.options)
// this._chart.update()
}
}
});
</script>
Я сделал это в mounted()
:
var self = this;
self.set = setInterval(function() {
self._chart.update()
}, 200);
И я не доволен этим.
1 ответ
Проблема в том, что вы не обновляете ярлыки. Вы определяете 10 элементов в вашем массиве меток. Это работает для 10 записей данных.
Если вы добавляете новую запись в массив данных, вам также необходимо добавить новую метку. В противном случае chart.js выдаст эту ошибку.