javascript - React 中的averagedAPI 数据已经被声明
问题描述
我不断收到 SyntaxError: Identifier 'averageGrade' 已经被声明。这是与新功能相关的顶部代码(到目前为止一切正常)。
import React, { useState, useEffect } from "react";
function App() {
const [averageGrade, setGrade] = useState([]);
useEffect(() => {
function fetchStudents() {
fetch("api.location.address")
.then(function (response) {
return response.json();
})
.then(function (data) {
setStudentList(data.students);
setFilteredStudent(data.students);
setGrade(data.grades);
});
}
fetchStudents()
}, []);
这是我无法弄清楚的事情。我把 setGrade([]) 'grades', 'setGrade', 'averageGrade' 放在里面,并把它留空,如图所示......
const averageGrade = grades => grades.reduce((acc,v) => acc + v) / grades.length;
setGrade([]);
return (
<Wrapper>
<h1 className="title">STUDENTS</h1>
<input onChange = {filterStudents}/>
{filteredStudents.map((students) => (
<StudentCard
key={students.id}
grades={students.setGrade}
/>
))}
</Wrapper>
);
}
export default App;
如果错误对您来说非常明显,请原谅我。我确实在寻找解决方案,现在我只是把头撞在桌子上。
解决方案
这应该是完整的块,
import React, { useState, useEffect } from "react";
function App() {
const [averageGrade, setGrade] = useState([]);
const [filteredStudent, setFilteredStudent] = useState([]);
const [studentList, setStudentList] = useState([]);
useEffect(() => {
function fetchStudents() {
fetch("api.location.address")
.then(function (response) {
return response.json();
})
.then(function (data) {
setStudentList(data.students);
setFilteredStudent(data.students);
let avgGrade = grades => grades.reduce((acc,v) => acc + v) / grades.length;// create a local variable, do not set averageGrade directly
setGrade(avgGrade);
});
}
fetchStudents()
}, []);
return (
<Wrapper>
<h1 className="title">STUDENTS</h1>
<input onChange = {filterStudents}/>
{filteredStudents.map((students) => (
<StudentCard
key={students.id}
grades={students.setGrade}
/>
))}
</Wrapper>
);
}
export default App;
推荐阅读
- reactjs - i18next 在缺少语言键时发出警告或 lint(不是 fallbackLng)
- java - 当登录尝试超过 3 次时,用户无法使用 Spring Security Rest API 登录?
- c++ - 构建包含对象指针的复合对象时如何解决生命周期问题由以下组成
- android - Xamarin BottomSheetBehavior halfExpandedRatio 缺少属性
- php - Codeigniter Web 应用程序在所有设备上都能正常工作,仅适用于少数 iphone 会话不起作用
- laravel - Laravel 多对多:电影 - 人物 - 角色
- cakephp-3.0 - 是否有任何选项验证来自控制器的表单而不是 cakephp3.8 中的模型
- python - Python将空格分隔文件转换为带有日期的csv问题?
- google-sheets - 根据字符串从不同的工作表中获取行
- python - 使用 pandas 在 python 中通过 hh:mm:ss 时间数据获取平均组