如何在Chart.js中动态生成多数据集折线图并解决无渲染无报错问题
问题原因
- 核心错误为Chart.js 3.x的配置结构不符合规范:
labels(X轴刻度配置)和datasets(数据集配置)两个参数不允许直接放在配置对象的根层级,必须嵌套在data属性下。 - 现有写法下Chart.js无法读取到有效绘图数据,同时没有触发语法层面的错误,因此出现图表空白、控制台无报错的现象。
你后端生成的数据集格式完全符合Chart.js的要求,无需调整后端代码。
修复方案
仅需要调整前端JS部分的配置结构,把labels和datasets移动到data属性下即可,修改后的完整代码如下:
<canvas id="myChart" width="400" height="400"></canvas> <script src='https://cdn.jsdelivr.net/npm/chart.js@3.6.0/dist/chart.min.js'></script> <script> const ctx = document.getElementById('myChart').getContext('2d'); const myChart = new Chart(ctx, { type: 'line', data: { labels: ['A', 'B', 'C', 'D'], datasets: {!! json_encode($wbw['reps']) !!} }, options: { responsive: true } }); </script>
内容的提问来源于stack exchange,提问作者Jaquarh
相关产品推荐
相关产品推荐

