Vue.js:重新定义图表的数据

时间:2018-04-23 11:49:36

标签: javascript vue.js vue-chartjs

我使用vue-chart.js绘制一个简单的图表。

import { Line } from 'vue-chartjs';

export default {
 extends: Line,
 mounted() {
   this.renderChart({
   labels: [this.getChartLabels],
   datasets: [
     {
       label: 'Active users',
       backgroundColor: '#f87979',
       data: [this.getChartData],
     },
   ],
 },
 { responsive: true,
   maintainAspectRatio: false,
 });
},
 computed: {
  ...mapGetters(['getFullReport', 'getChartLabels', 'getChartData']),
 },
 methods: {
  ...mapActions(['loadFullReport']),
 },
};

当我在mounted中控制我的getter时,我可以看到我收到一个包含两个项目的数组但是当我重新加载页面时,该数组似乎是空的。图表本身在页面重新加载之前和之后都没有显示任何信息。请帮忙!

1 个答案:

答案 0 :(得分:1)

你应该添加一个监视器来监视你的getter中的变化。 然后在this.$data._chart.update()

上更新图表

Chart.js不是被动的。如果您的数据发生变化或者#34;来得太晚了#34;在您的图表实例渲染后,您将看不到任何内容。

我猜您是通过API填充商店的吗?然后它更加重要,因为你的API调用是异步的。