React +图表图例无法正常运行

问题描述

我正在使用React + Recharts创建堆叠和分组的条形图,这是我第一次使用Recharts。但是图例无法正常运行,我希望图例在每个组中切换两个图形,但它仅适用于左侧栏,不适用于右侧栏。 有可能使两者同时适用吗?

enter image description here

我是这样做的:

const selectBar = event => {
  let updatedLabels = [];
  let updatedLabelsspend = [];
  for (let i = 0; i < data.labels.length; i++) {
    let label = data.labels[i];
    let spendLabel = data.filteredDataSpend[i];

    if (label.key !== event.value) {
      updatedLabels.push(label);
      updatedLabelsspend.push(spendLabel);
    } else {
      if (/\s/.test(label.key) && /\s/.test(spendLabel.key)) {
        let newLabel = { key: label.key.trim(),color: label.color };
        let newLabelSpend = {
          key: spendLabel.key.trim(),color: spendLabel.color,};
        updatedLabels.push(newLabel);
        updatedLabelsspend.push(newLabelSpend);
      } else {
        let newLabel = { key: label.key + ' ',color: label.color };
        let newLabelSpend = {
          key: spendLabel.key + ' ',};
        updatedLabels.push(newLabel);
        updatedLabelsspend.push(newLabelSpend);
      }
    }
  }
  setData({ ...data,labels: updatedLabels });
};

您可以在demo

中查看演示

有什么帮助吗?

解决方法

您错过了filteredDataSpend的状态更新,此小的更改可以解决此问题

    setData({
      ...data,labels: updatedLabels,filteredDataSpend: updatedLabelsSpend
    });

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...