我正在我的react应用程序中添加Chart J,以条形图的形式显示数据。代码有效,我可以正确显示数据,我面临的唯一问题是,如果其中一个数据值太高,条形图将只显示它
正如你在这张图片上看到的,如果1月份的数据是10万,而其他月份的数据低于1万,我们只能看到1月份的数字。当我点击数据的元素(一月)时,我得到索引0,我需要得到其他月份所有元素的索引,例如,当我点击二月的空白时,我应该得到索引1等。
代码沙盒-链接
我的代码:
import React, { useRef } from "react";
import {
Chart as ChartJS,
CategoryScale,
LinearScale,
BarElement,
Title,
Tooltip,
Legend
} from "chart.js";
import { Bar, getElementAtEvent } from "react-chartjs-2";
ChartJS.register(
CategoryScale,
LinearScale,
BarElement,
Title,
Tooltip,
Legend
);
export const options = {
responsive: true,
plugins: {
legend: {
position: "top"
},
title: {
display: true,
text: "Chart.js Bar Chart"
}
}
};
const labels = ["January", "February", "March", "April", "May", "June", "July"];
export const data = {
labels,
datasets: [
{
label: "Dataset 1",
data: [100000, 500, 40],
backgroundColor: "rgba(255, 99, 132, 0.5)"
}
]
};
export default function App() {
const barRef = useRef();
const handleGetData = (event) => {
console.log(getElementAtEvent(barRef.current, event)[0]?.index);
};
return (
<Bar ref={barRef} options={options} data={data} onClick={handleGetData} />
);
}
在这种情况下,我如何获得2月份的指数?如果单击空白,getElementAtEvent(barRef.current, event)[0]?.index返回undefined。