在我们的项目中,我们有一个带有图例的折线图。图表和它的图例都在单独的容器中初始化(以防这个事实很重要)。
<div ref="chartdiv" />
<div ref="legenddiv" />
字符串
我们使用一个自定义的FromConfig方法来创建它们。x1c 0d1x
我试图实现:我们有一个页面上的多个选项卡,用户通常切换图例项目显示/隐藏一些系列。我需要存储这些切换图例项目,以便当用户返回到与图表的选项卡,我将能够切换他们回来编程。
从我的理解一个算法到这个如下:
1.将已切换的项目存储在某个位置
1.当图表启动时,切换先前切换的项目。据我所知,应该通过显示/隐藏系列来完成,而不是图例项目。
到目前为止,我已经设法通过向图例项添加单击处理程序来存储标签。
chart.value.legend.itemContainers.template.events.on('hit', (ev) => {
toggledItems.push(ev.target.dataItem.name)
})
型
但是我没有成功隐藏以前切换的图例项。我试图根据this question实现堆栈溢出,我试图使用'inited','hidden','showed'事件,但没有React。
// Nothing happens here ☹️
chart.value.series.template.events.on('hidden', () => {
console.log('I am hidden')
})
型
拜托,给我指个方向。
1条答案
按热度按时间kgqe7b3p1#
找到了一个解决方案。希望这能帮助到别人。我们在项目中有一个
Line
图表组件。我添加了一个toggleSeries
prop -一个用于切换图例/系列项目的v模型,它存储字符串(名称)。所以当我们单击图例项目时,我们会输入图例项目的名称并更新toggleSeries
v模型。有一个双向绑定,我们可以初始化一个已经在toggleSeries
数组中有项目的图表,或者我们可以把来自Line
组件外部的项目放在移动中-图表将被更新。字符串