如何提供点击事件的附加数据(amchart+react)



我有数据结构

{
Priority    int    `json:"priority"`
Component   int    `json:"component"`
}

数据示例:

[{
Priority: 1,
Component: 4
}
,
{
Priority: 2,
Component: 3
}]

我有amchart

const chart = am4core.create("testChart", am4charts.XYChart);
const categoryAxis = chart.yAxes.push(new am4charts.CategoryAxis());
categoryAxis.dataFields.category = "priority"; 

我有处理";命中";事件

categoryAxis.renderer.labels.template.events.on("hit", function (event) {
console.log({"dataItem": event.target.dataItem})
props.setID(
parseInt(
(event.target.dataItem as AxisDataItem & { category: string })
.category
) 
);
});

因此,当我点击Y轴分类时,代码调用setID((;"优先级";值。

问题是:我需要提供setID((而不是"优先级";,但是";部件";。但我不能提出";部件";图表Y轴中的值。客户端应该只看到";"优先级";价值观但是当客户端点击这个值时,setId((应该得到";部件";对应于该"0"的值;"优先级";。例如,当我点击1时,它应该用4调用setId((。我该怎么办?谢谢

我找到了解决方案。categoryAxis.dataFields.dataFields还有两个附加属性:id和data。

https://www.amcharts.com/docs/v4/reference/icategoryaxisdatafields/

可以使用它们设置

categoryAxis.dataFields.id = "component"; 

然后得到

event.target.dataItem as AxisDataItem & { id: string })
.id

最新更新