首页 > 解决方案 > ApexChart TypeError:更新图表时“c未定义”

问题描述

我开始使用 ApexChart,它可以很好地创建图表,但是当我尝试更新图表时它返回错误“c 未定义”。

我如何创建图表如下。dates 是一个包含一些日期和值的数组 一个包含数字的数组

var options = {
    chart: {
        height: 350,
        type: 'area',
        zoom: {
            enabled: false
        }
    },
    dataLabels: {
        enabled: false
    },
    stroke: {
        curve: 'straight'
    },
    series: [{
        name: "Sales",
        data: values
    }],
    title: {
        text: 'Number os sales',
        align: 'left'
    },
    labels: dates,
    xaxis: {
        type: 'datetime'
    },
    yaxis: {
        opposite: true
    },
    legend: {
        horizontalAlign: 'left'
    }
}
var chart = new ApexCharts(
    document.querySelector("#salesChart"),
    options
)
if (document.getElementById('salesChart')) {
    chart.render();
}

然后,我尝试通过以下方式更新图表:

// Update label
ApexCharts.exec('salesChart', 'updateOptions', {
    xaxis: {
        labels: dates
    }
}, false, true)
// Update values
ApexCharts.exec('salesChart', 'updateSeries', [{
    data: values
}], true);

当我为数组日期和值设置新值时,会调用上面的更新。它返回错误:

TypeError: "c is undefined"
    getChartByID http://myserver.com/assets/js/vendors/charts/apex-charts.js:27013
    exec http://myserver.com/assets/js/vendors/charts/apex-charts.js:26952

标签: javascriptapexcharts

解决方案


您忘记在选项中为图表提供 id

var options = {
  chart: {
    id: 'salesChart'
  }
}

该功能ApexCharts.exec仅在您提供图表 ID 时有效。


推荐阅读