javascript - Chartjs-Vue 图表为空

标签 javascript vue.js chart.js vue-chartjs

我正在按照示例制作测试图表并渲染图表,但它是空白的虚拟数据。

enter image description here

我的第一个想法是,也许没有为线条传递选项,但是对于所有其他类型的图表,它就像没有填充 dataCollection 一样。我对 Vue 很陌生(几个小时),所以也许这与不更新状态有关?

Languages.js

import { Line, mixins } from 'vue-chartjs'
//const { reactiveProp } = mixins

export default {
  extends: Line,
  //mixins: [reactiveProp],
  props: ['options'],
  mounted () {
    // this.chartData is created in the mixin.
    // If you want to pass options please create a local options object
    this.renderChart(this.chartData, this.options)
  }
}

StatsSection.vue

<template>
<!-- Stats Section -->
<div class="stats-wrapper" style="margin: 15px 0; padding: 15px;">
  <languages :chart-data="datacollection"></languages>
</div>
</template>

<script>
import Languages from './charts/Languages.js'

export default {
  components: {
    Languages
  },
  data() {
    return {
      datacollection: {}
    }
  },
  mounted() {
    this.fillData()
  },
  methods: {
      fillData () {
        this.datacollection = {
          labels: [80, 12],
          datasets: [
            {
              label: 'Data One',
              backgroundColor: '#f87979',
              data: [40, 60]
            }, {
              label: 'Data One',
              backgroundColor: '#f87979',
              data: [72, 43]
            }
          ]
        }
      }
    }
}
</script>

最佳答案

这是因为您正在安装的 Hook 中调用 fillData() 方法。 您的图表将使用空数据对象进行渲染。

数据在图表渲染后被填充。由于 Chart.js 不是响应式的,因此您有一个空图表。

解决方案:

  • 将填充的数据对象传递到图表,而不是使用 fillData 方法
  • 或者添加reactiveProp mixin

关于javascript - Chartjs-Vue 图表为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56179985/

相关文章:

javascript - meteor 客户端 JavaScript 中的全局变量

javascript - 什么时候关闭会导致性能问题

javascript - VueJS : Updating data from method makes the properties synced

javascript - 使用 vue 分布式文件中定义的函数

javascript - 如何将响应式 chart.js 图表设置为不填满屏幕?

javascript - 尝试更改图表 Canvas 的高度和宽度

javascript - 重新加载部分 HTML 而不刷新页面?

javascript - 是否有任何高阶函数可以从 javascript 中的对象数组返回对象?

javascript - 如何让对象在 v-bind 和 v-for 中使用

javascript - Chart.js 不显示动态填充的数据