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

每秒向两个Chart.js图表推送数据时遇TypeError错误求助

问题分析与解决

错误原因

报错Uncaught TypeError: Cannot read properties of undefined (reading 'push')的核心问题是:Chart.js的datasets是数组类型,而非直接的对象。你在代码中直接调用myChart0.data.datasets.data,相当于在数组上访问不存在的data属性,结果为undefined,自然无法执行push方法。

从你的初始化代码可以看到,每个图表的datasets都是包含单个对象的数组:

datasets: 
   [{
      data: [],
      label: "WEIGHT",
      // ...其他配置
   }],

修正后的代码

将datasets.data改为datasets[0].data,定位到数组中的第一个数据集对象后再操作其data数组:

function addData(label, data0, data1)
{
   myChart0.data.labels.push(label);
   myChart0.data.datasets[0].data.push(data0);
   myChart1.data.labels.push(label); 
   myChart1.data.datasets[0].data.push(data1);

   myChart0.update();        
   myChart1.update();        
}

补充说明

  • 如果你后续需要给图表添加多个数据集,只需对应调整数组索引(比如datasets[1]、datasets[2]),或者遍历datasets数组来批量更新数据。
  • 调用update()方法会触发图表重新渲染,确保新数据实时显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 19:31:21