单击 Apex 图表中的图例可切换所有数据系列

Toggle all data series upon clicking a legend in Apex charts

在下图中,假设有第四个图例'All',当我点击它时,所有数据都应该消失。当我再次单击它时,所有数据都必须重新出现。有没有办法在顶点图表中做到这一点?

在添加图表的 div 中添加了一个新按钮,并为其添加了一个 onclick 操作,它将调用函数 toggle series

<div className={"chart-item " + className} key={index}>
  <Chart series={option.series} options={option} height={600} />
  <div className="all-lines">
    <input
      className="button-css"
      type="button"
      value={toggleText[index]}
      onClick={(e) => {
        toggleSeries(option?.chart?.id, option?.series, e);
      }}
    />
  </div>
</div>

切换系列功能将根据图表的当前状态隐藏或显示所有图例。

function toggleSeries(
      id: string | undefined,
      series: ApexAxisChartSeries | ApexNonAxisChartSeries | undefined,
      e: any
    ) {
      const functionName =
        e.target.value === hideText ? "hideSeries" : "showSeries";
      e.target.value = e.target.value === hideText ? showText : hideText;
      const chartSeries: ApexAxisChartSeries | undefined = series
        ? (series as ApexAxisChartSeries)
        : undefined;
      const chartId = id ? id : "";

      chartSeries?.forEach((ser) => {
        ApexCharts.exec(chartId, functionName, ser.name);
      });
    }

    return lineChartItems;
  }