语法错误:赋值表达式的左侧无效

时间:2021-05-27 11:52:42

标签: javascript reactjs react-native

我从后端收到了包含 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”。

1 个答案:

答案 0 :(得分:2)

在读取值时应使用可选链,而不是在赋值时使用。您可以将这段代码更新为:

if (student != null) {
    student.grade = grade;
}

编辑:Felix King 指出的错误