我正在我的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。