【发布时间】:2022-01-18 18:24:18
【问题描述】:
我正在尝试从数据库中获取数据并将其呈现为条形图中的 x 轴标签。
import React, { useState, useEffect } from "react";
import "../styling/ClassGrades.css";
import { Bar } from "react-chartjs-2";
import Axios from "axios";
function ClassGrades() {
let studentsArray = [];
useEffect(() => {
Axios.get("http://localhost:1337/api/getStudentsFromClass", {
params: { currentClassClicked }
}).then(response => {
setStudents(response.data.message);
// console.log(response.data.message)
for (let i = 0; i < response.data.message.length; i++) {
studentsArray.push(String(response.data.message[i].firstName));
}
console.log(studentsArray);
// console.log(response.data.message[0].firstName)
});
}, []);
console.log(studentsArray);
const currentClassClicked = localStorage.getItem("currentClassClicked");
console.log(currentClassClicked);
const [students, setStudents] = useState([]);
return (
<div className="class-grades-container">
<h1>{currentClassClicked}</h1>
<Bar
data={{
labels: studentsArray,
datasets: [
{
label: "student grades",
data: [30, 80, 20, 10]
}
]
}}
/>
</div>
);
}
export default ClassGrades;
我创建了一个数组,在useEffect 挂钩中,每个数据都添加到studentsArray,但它不会在条形图中呈现。我控制台记录了数组,数据就在那里。
【问题讨论】:
标签: javascript node.js reactjs axios chart.js