Vue chartjs 默认禁用数据集

Vue chartjs disables datasets by default

在我的氏族项目中,Supercell 游戏中的 Lords of War。我正在尝试用 chart.js 制作当前捐款的图表。我在前端使用 Vue,在图表中使用 vue-chartjs。只有1个问题。当我打开页面时,数据集不可见。那我该如何解决呢?

这是图表数据对象:

donation_chart_data: {
     labels: [],
     datasets: [
         {
             label: 'Donated',
             hidden: false,
             backgroundColor: '#1D93D3',
             data: []
         },
         {
             label: 'Received',
             hidden: false,
             backgroundColor: '#C7031F',
             data: []
         }
     ]
}

这是 DonationChart 组件:

import { Bar, mixins } from 'vue-chartjs'
const { reactiveProp } = mixins;

export default {
    extends: Bar,
    name: 'ClashRoyaleDonationChart',
    mixins: [reactiveProp],
    mounted () {
        // Overwriting base render method with actual data.
        this.renderChart(this.chartData,
        {
            responsive: true,
            maintainAspectRatio: false
        })
    }
}

PS: 当我点击图例时,数据显示正确

嗯,我猜你正在使用 API 来获取你的数据?

然后你需要检查数据是否可用。 Axios / Ajax 请求是异步的。所以大多数时候,您的图表将在没有数据的情况下呈现。

只需在您的图表组件和您的

中添加一个v-if="loaded"

axios.get().then() 方法,设置 loaded = true 应该没问题。