Wie soll ich auf das Diagramm in einer Vue-Chart-Instanz verweisen und es zerstören? Ich habe versucht:rerender chart in vue-chart
var chartVue = new Vue({
el: '#chart',
extends: VueChartJs.Line,
data: {
chartData: {...},
options: {...}
},
mounted() {
this.renderMyChart()
},
methods: {
renderMyChart: function() {
this.renderChart(
this.chartData,
this.options
);
}
},
watch: {
chartData: function() {
this._chart.destroy();
this.renderMyChart();
}
}
});
Aber es klagt
TypeError: Cannot read property 'destroy' of undefined
So scheint es this._chart
ist nicht der richtige Weg, um die aktuellen Chart zu beziehen, jeder weiß, was der richtige Weg ist, dies zu tun? Die Idee kommt von this stack overflow answer.
' this._chart' ist die richtige Referenz, also bin ich mir nicht sicher, warum es zu diesem Zeitpunkt "undefiniert" wäre. Sie können aber auch einfach das 'reactiveData'-Mixin verwenden, das genau das tut, was Sie tun möchten: http://vue-chartjs.org/#/home?id=reactive-data – thanksd
Hi @thanksd, danke für die Antwort. Ich habe mir 'Mixins' angeschaut, bin mir aber nicht sicher, wie ich es direkt in einer Vue-Instanz verwenden kann. Das Beispiel zeigt, wie es in einer vue-Komponente verwendet wird. Weißt du wie ich hier reactiveProp benutzen kann? – Psidom
Fügen Sie einfach 'mixins: [VueChartJs.mixins.reactiveData],'. Und beachte, dass es "reactiveData" und nicht "reactiveProp" sein muss, da du 'chartData' in deinem Datenobjekt definiert hast und nicht als proprietär. Beispiel: https://jsfiddle.net/fuj4yqke/ – thanksd