在反应挂钩中将元素添加到现有数组
Adding an element to an existing array in react hooks
所以我有这个状态变量:
const [Class, setClass] = useState({ Teacher: "John Fartsalot", Year: 2021, Students: [] });
我有一个:
ver studentObject
我想使用 setClass
动态地将 studentObject
推入 Students
数组。
我遇到了这个 post: 但它似乎只有在只有列表的情况下才有意义。
在我的情况下,正确的做法是什么?
虽然您可以将现有的 Class
扩展到一个新对象中,然后将新的 students
数组也扩展到该新对象中,但最好遵循约定 分离出 状态变量(如 React 推荐的那样),并且不要使用 Class
作为变量名(它非常接近保留字 class
)。考虑:
const [teacher, setTeacher] = useState('John Fartsalot');
const [year, setYear] = useState(2021);
const [students, setStudents] = useState([]);
然后添加到学生数组,执行
setStudents([...students, studentObject]);
或者,如果 students
此时恰好处于陈旧的关闭状态,则
setStudents(students => [...students, studentObject]);
这是正确的添加方式:
setStudents(students => [...students, studentObject]);
所以我有这个状态变量:
const [Class, setClass] = useState({ Teacher: "John Fartsalot", Year: 2021, Students: [] });
我有一个:
ver studentObject
我想使用 setClass
动态地将 studentObject
推入 Students
数组。
我遇到了这个 post:
在我的情况下,正确的做法是什么?
虽然您可以将现有的 Class
扩展到一个新对象中,然后将新的 students
数组也扩展到该新对象中,但最好遵循约定 分离出 状态变量(如 React 推荐的那样),并且不要使用 Class
作为变量名(它非常接近保留字 class
)。考虑:
const [teacher, setTeacher] = useState('John Fartsalot');
const [year, setYear] = useState(2021);
const [students, setStudents] = useState([]);
然后添加到学生数组,执行
setStudents([...students, studentObject]);
或者,如果 students
此时恰好处于陈旧的关闭状态,则
setStudents(students => [...students, studentObject]);
这是正确的添加方式:
setStudents(students => [...students, studentObject]);