我试图向轻量级图表系列传递一些额外的密钥对,并在subscribeCrosshairMove事件处理程序中访问它。
const data = [{
time: <unix-timestamp>,
value: <integer>,
extraData: <string>
}]
const chart = createChart(chartContainerRef.current, {});
const series = chart.addLineSeries({ color: 'rgb(255, 99, 132)', lineWidth: 3 });
series.setData(data)
chart.subscribeCrosshairMove(function(param) {
// Here I want to access that extraData key
// param only contains value and time keys, not extraData.
});有谁能告诉我如何做到这一点?蒂娅。
发布于 2022-08-15 07:47:41
您可以使用time属性在原始数据集中找到所需的数据点。
chart.subscribeCrosshairMove((param) => {
const datapoint = data.find(point => point.time === param.time);
console.log(datapoint.extraData);
});但是,每次在数据数组中搜索都会很慢,因此将extraData值存储在映射/对象中是有益的,以便更容易地进行检索。
series.setData(data);
const extraData = new Map();
data.forEach(datapoint => {
extraData.set(datapoint.time, datapoint.extraData);
});
chart.subscribeCrosshairMove((param) => {
console.log(extraData.get(param.time));
});https://stackoverflow.com/questions/73356597
复制相似问题