首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vue-chartjs如何加载数据

vue-chartjs如何加载数据
EN

Stack Overflow用户
提问于 2018-03-28 13:25:09
回答 1查看 2.5K关注 0票数 0

Linechart.js

代码语言:javascript
复制
import { Line } from 'vue-chartjs'

export default {
  extends: Line,
  props:['chart']
    mounted () {
      this.renderChart({
        labels: ['1','2','3','4','5','6','7'],
        datasets: [
          {
            label: 'Data One',
            backgroundColor: '#F64A32',
            data: this.chart
          }
        ]
      }, {responsive: true, maintainAspectRatio: false})
    }
}

我使用道具传递数据example.vue。

代码语言:javascript
复制
<template>
<line-chart :width="370" :height="246" :chart="chartdata"></line-chart>
</template>
<script>
import LineChart from './vue-chartjs/LineChart'
export default {
components: {
      LineChart
    },
},
data(){
 return{
   chartdata:[]
  }
}
methods:{
  getdata(){
    this.chartdata=[10,20,30,40,50]
    }
}

</script>

当我单击getdata()时,我认为它已经传递给了Linechart.js,但是为什么图表不更新呢?仍然空着

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-04 09:54:04

如果希望动态更改数据,则需要reactiveMixin http://vue-chartjs.org/#/home?id=reactive-data

或者你必须自己触发一个图表更新。

这是因为,即使Vue.js是反应性的,Chart.js本身也不是。

如果您想更新图表,只需在LineChart.js组件中添加一个观察者,并观察图表中的变化。然后调用.update()

代码语言:javascript
复制
import { Line } from 'vue-chartjs'

export default {
  extends: Line,
  props:['chart']
  watch: {
    chart () {
      this.$data._chart.update()
    }
  }
  mounted () {
      this.renderChart({
        labels: ['1','2','3','4','5','6','7'],
        datasets: [
          {
            label: 'Data One',
            backgroundColor: '#F64A32',
            data: this.chart
          }
        ]
      }, {responsive: true, maintainAspectRatio: false})
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49535828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档