chartjs更新数据 vue_javascript - Vue-ChartJS数据集不推送更新图表 - SO中文参考 - www.soinside.com...

我正在使用Vue-ChartJS在我的网页上显示图表。因此,当我使用推送功能更新数据集时,图表不会更新(据说它应该更新视图)。使用直接设置到反应变量是更新图表(如this.transaction = Object)。当前ChartComponent的工作方式与此类似,但我希望从API获取数据并将其添加到视图中。

Linecartajasa

import { Line, mixins } from 'vue-chartjs'

const { reactiveProp } = mixins

export default {

extends: Line,

mixins: [reactiveProp],

props: ['options'],

mounted () {

this.renderChart(this.chartData, this.options)

}

}

ChartComponent.vue(使用直接设置)

Статистика

Седмица

Месец

Година

От:

До:

import LineChart from './LineChart.js'

export default {

components: {

LineChart

},

data () {

return {

transactions: {},

options: {

maintainAspectRatio: false,

responsive: true,

legend: {

display: true

},

scales: {

yAxes: [{

ticks: {

beginAtZero: true

}

}]

}

}

}

},

mounted () {

this.fillData()

},

methods: {

fillData () {

this.transactions = {

labels: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"],

datasets: [{

label: 'Users',

data: [12, 19, 3, 5, 2, 3, 20, 33, 23, 12, 33, 10],

backgroundColor: 'rgba(66, 165, 245, 0.5)',

borderColor: '#2196F3',

borderWidth: 1

}]

}

},

updateChart (period) {

console.log('Chart updated for period: ' + period);

this.transactions = {

labels: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"],

datasets: [{

label: 'Users',

data: [12, 19, 3, 5, 2, 3, 20, 33, 23, 12, 33, 10],

backgroundColor: 'rgba(66, 165, 245, 0.5)',

borderColor: '#2196F3',

borderWidth: 1

}, {

label: 'Users',

data: [123, 19, 3, 5, 2, 3, 20, 33, 23, 12, 33, 10],

backgroundColor: 'rgba(66, 165, 245, 0.5)',

borderColor: '#2196F3',

borderWidth: 1

}]

}

console.log(this.transactions)

}

},

}

ChartComponent.vue(使用push函数)

import LineChart from './LineChart.js'

export default {

components: {

LineChart

},

data () {

return {

transactions: {},

options: {

maintainAspectRatio: false,

responsive: true,

legend: {

display: true

},

scales: {

yAxes: [{

ticks: {

beginAtZero: true

}

}]

}

}

}

},

mounted () {

this.fillData()

},

methods: {

fillData () {

this.transactions = {

labels: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"],

datasets: [{

label: 'Users',

data: [12, 19, 3, 5, 2, 3, 20, 33, 23, 12, 33, 10],

backgroundColor: 'rgba(66, 165, 245, 0.5)',

borderColor: '#2196F3',

borderWidth: 1

}]

}

},

updateChart (period) {

console.log('Chart updated for period: ' + period);

this.transactions.datasets.push({

label: 'Users',

data: [123, 19, 3, 5, 2, 3, 20, 33, 23, 12, 33, 10],

backgroundColor: 'rgba(66, 165, 245, 0.5)',

borderColor: '#2196F3',

borderWidth: 1

});

console.log(this.transactions)

}

},

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值