добавить пользовательский наблюдатель для обновления любого графика Vue Chart
ользую Vue.js и Chart.js, чтобы нарисовать график. Каждый раз, когда я вызываю функциюgenerateChart()
, график не обновляется автоматически. Когда я проверяю данные вVueDevTools
, они верны, но диаграмма не отражает их.
Интересный факт: график обновляется, когда я изменяю размер окна.
Что не так с тем, что я делаю?Как обновлять график каждый раз, когда я звонюgenerateChart()
?Я чувствую, что это будет связано сobject
а такжеarray
изменяет обнаружение, но я не уверен, что делать.
https://codepen.io/anon/pen/bWRVKB?editors=1010
<el-dialog title="Chart" v-model="showGeneratedChart">
<line-chart :chartData="dataChart"></line-chart>
</el-dialog>
export default{
data (){
const self = this;
return {
dataChart : {
labels : [],
datasets: [{
label: 'label',
backgroundColor: '#FC2525',
data: [0, 1, 2, 3, 4],
}]
}
}
}
generateChart() {
this.dataChart['labels'] = [];
this.dataChart['datasets'] = [];
... compute datasets and formattedLabels
this.dataChart['labels'] = formattedLabels;
this.dataChart['datasets'] = datasets;
}
LineChart.jsimport { Line, mixins } from 'vue-chartjs'
export default Line.extend({
mixins: [mixins.reactiveProp],
props: ["options"],
mounted () {
this.renderChart(this.chartData, this.options)
}
})