K线图组件更新数据后,鼠标悬停提示不显示最新值怎么办?

UE丶国红 阅读 41

我在用ECharts做股票K线图时遇到个问题,当调用setOption更新数据后,K线能正常刷新,但鼠标悬停时显示的成交量提示框还是旧数据。之前试过先清空系列数据再重新渲染,但提示依旧残留旧值…

代码大概是这样写的:


this.chart.setOption({
  series: [{
    data: newCandleData
  }]
});

后来改成notMerge: true参数反而把整个K线系列清空了,这到底是哪里没处理好?难道提示框的缓存需要单独更新吗?

我来解答 赞 8 收藏
二维码
手机扫码查看
2 条解答
程序猿智营
用notMerge: true是对的,但你得把整个series对象完整传进去,只传data会被合并忽略其他配置。最简单的办法是重新构造完整的series配置项再更新,比如:

this.chart.setOption({
series: [{
type: 'candlestick',
data: newCandleData,
// 其他原有配置都要带上...
}]
}, true);
点赞 3
2026-02-05 09:16
萌新.爱军
问题在于你只更新了series里的data,但没重置tooltip里的formatter缓存。ECharts的tooltip内容是独立维护的。

正确写法要强制更新tooltip的显示内容:
this.chart.setOption({
series: [{
type: 'candlestick',
data: newCandleData
}],
tooltip: {
formatter: (params) => {
// 这里返回你最新的提示格式
return 成交量:${params.value[4]};
}
}
}, true);


注意setOption第二个参数要传true强制合并,否则会清空原有配置。
点赞 6
2026-02-04 12:16