stockChart取消选中数据序列时报TypeError: Cannot read properties of null (reading '0')原因查询
问题原因
这个TypeError: Cannot read properties of null (reading '0')报错,本质是当你取消选中FFSite序列后,代码尝试读取一个空值的第0位属性,常见触发场景有三类:
- 自定义的
tooltip.formatter逻辑中硬编码读取两个序列的对应数据点,其中一个序列被隐藏后,对应的数据集被置为null,你没有做空值判断就直接访问[0]索引 - 自定义坐标轴计算、图表联动或者指标计算逻辑里,默认遍历所有序列取
data[0]做计算,没有判断序列是否可见、数据数组是否存在 - 如果你使用的是Highcharts StockChart,部分旧版本的多序列联动内置逻辑在只剩1个可见序列时也可能触发该报错,但概率远低于自定义逻辑问题
修复方法
- 先根据报错栈定位到读取
[0]的代码行,给访问逻辑加上空值校验,示例如下:
// 错误写法 let firstPoint = chart.series[1].data[0]; // 修正写法 let targetSeries = chart.series?.[1]; let firstPoint = targetSeries?.visible && targetSeries?.data?.length ? targetSeries.data[0] : null;
- 若排查后确认没有自定义逻辑触发报错,可升级图表库到最新稳定版,验证是否是框架本身的兼容问题
- 如果配置了多序列对比、自定义指标,可以给这些功能加上触发条件,仅当依赖的序列全部可见时才执行对应计算逻辑
内容的提问来源于stack exchange,提问作者SoftTimur
相关产品推荐
相关产品推荐

