MUI X折线图悬停仅显示最后一个数据点问题求助
MUI X Charts悬停仅显示最后一个标记点的解决方案
问题根源
循环生成折线系列时,未为每个系列分配唯一标识(id/dataKey),或因闭包陷阱导致tooltip始终引用最后一个系列的数据,图表无法区分不同系列的悬停事件。
修复步骤
- 为每个折线系列添加唯一标识:在循环渲染
<Line />组件时,指定唯一的id和dataKey,确保图表能识别不同系列:{yourDataArray.map((seriesItem) => ( <Line key={seriesItem.id} // React列表渲染必备的唯一key id={seriesItem.id} // MUI Charts用于区分系列的唯一标识 dataKey={seriesItem.valueField} // 对应数据集中的字段名 // 其他配置项... /> ))} - 规避闭包陷阱:如果使用自定义tooltip或事件处理函数,在循环中通过
let/const块级作用域或函数绑定保留每个迭代的变量上下文,不要直接引用循环外部的变量。 - 检查tooltip配置:若使用自定义Tooltip组件,确保其
formatter函数通过传入的params参数获取当前悬停的系列数据,而非固定引用外部变量:<Tooltip formatter={(value, entry) => [value, entry.series.name]} />
内容的提问来源于stack exchange,提问作者michael holstein
相关产品推荐
相关产品推荐

