我从后端收到了包含 student
对象的数据。
student
包含一个名为 grade
的字段。我想在我的代码中明确更新 student
对象的值:
// the component parses the student object, I don't show those code here
useEffect(() => {
const {grade} = calculateNewGrade(student);
// Syntax Error: Invalid left-hand side in assignment expression
student?.grade = grade;
}, [student]);
当我运行我的应用程序时,我最终遇到了上面显示的代码的错误“赋值表达式中的左侧无效”。为什么?那么更新该值的正确方法是什么?
=== 关于使用可选语法 student?.grade
===
我使用可选语法的原因是开头的 student
是 undefined 或 null,直到它被加载。如果我删除可选的 ?
,我最终会在评估 student.grade
时遇到另一个错误“undefined is not an object”。
答案 0 :(得分:2)
在读取值时应使用可选链,而不是在赋值时使用。您可以将这段代码更新为:
if (student != null) {
student.grade = grade;
}
编辑:Felix King 指出的错误