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

使用ngx-charts-bar-vertical-stacked报错:Cannot read property 'length' of undefined

解决ngx-charts堆叠柱状图报错:Cannot read property 'length' of undefined

嘿,这个问题我之前用ngx-charts时也踩过坑!错误Cannot read property 'length' of undefined的核心原因其实很简单——你只声明了数组变量,但没有初始化它。

问题根源

你在app.ts里写了:

chartDataNGX: any[];

这时候chartDataNGX的初始值是undefined,而不是一个空数组。当你调用this.chartDataNGX.push(...)时,本质是在给一个undefined的对象调用方法,而ngx-charts组件在渲染过程中会尝试读取数组的length属性,自然就触发了这个报错。

修复步骤

只需要在声明数组的时候直接初始化为空数组即可:

// 修改后的声明代码
chartDataNGX: any[] = [];

完整修复后的代码示例

// app.ts中
chartDataNGX: any[] = []; // 关键:初始化空数组

constructor() {
  this.getChartData();
}

getChartData() {
  this.chartDataNGX.push(
    {"name": "TEST2","series": [ {"name": "Target","value": 40632}, {"name": "Actual","value": 36953}, {"name": "Projected","value": 31476} ]},
    {"name": "TEST3","series": [ {"name": "Target","value": 40632}, {"name": "Actual","value": 36953}, {"name": "Projected","value": 31476} ]}
  );
}

额外小提示

如果之后你的图表数据是通过异步请求(比如HTTP接口)获取的,建议在模板中给图表组件加上空值判断,避免组件在数据加载完成前尝试渲染:

<ngx-charts-bar-vertical-stacked
  *ngIf="chartDataNGX && chartDataNGX.length > 0"
  [results]="chartDataNGX"
  ...其他配置属性
>
</ngx-charts-bar-vertical-stacked>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:18:19