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
相关产品推荐
相关产品推荐

