问题描述
我正在使用React + Recharts创建堆叠和分组的条形图,这是我第一次使用Recharts。但是图例无法正常运行,我希望图例在每个组中切换两个图形,但它仅适用于左侧栏,不适用于右侧栏。 有可能使两者同时适用吗?
我是这样做的:
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
});