我有数据结构
{
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