You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ChartJS图表更新失败,出现TypeError错误求助

解决ChartJS图表无法更新及TypeError问题

嘿,我刚看完你的代码,马上就发现问题所在了!你遇到的Uncaught TypeError: Cannot set property '2' of undefined错误,根源是数据集的访问路径写错了——ChartJS里的datasets是一个数组(用来支持多数据集场景),你直接写datasets.data是找不到对应属性的,自然就会抛出undefined相关的错误。

具体修正步骤:

  • 把你代码里的这行错误代码:

    somechart.config.data.datasets.data[2] = 5000;
    

    改成:

    // 方式1:通过config访问
    somechart.config.data.datasets[0].data[2] = 5000;
    // 或者更简洁的方式2:直接访问data属性
    somechart.data.datasets[0].data[2] = 5000;
    

    这里的[0]代表第一个数据集,如果你有多个数据集,对应修改索引即可。

  • 你修改标题的代码是没问题的:somechart.options.title.text = 'new title';,这部分不用改。

修正后的完整代码:

<canvas id="somechart"></canvas>
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>
<script>
var ctx = document.getElementById('somechart').getContext('2d');
var somechart = new Chart(ctx, {
 type: 'line',
 options: {
 title: {
 display: true,
 text: 'Custom Chart Title'
 }
 },
 data: {
 labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
 datasets: [{
 label: 'My First dataset',
 backgroundColor: 'rgb(255, 99, 132)',
 borderColor: 'rgb(255, 99, 132)',
 data: [0, 10, 5, 2, 20, 30, 45]
 }],
 },
});
somechart.options.title.text = 'new title';
// 修正后的数据集数据更新代码
somechart.data.datasets[0].data[2] = 5000;
somechart.update();
</script>

这样修改后,调用somechart.update()就能同时更新标题和数据集数据了,不会再抛出那个TypeError错误啦。

内容的提问来源于stack exchange,提问作者user3274489

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 20:18:13