React出现Expected an assignment or function call报错该如何解决
报错原因
- 核心语法问题:
User构造函数中this.surname = surname末尾错误使用逗号,而非分号;,JS解析器会将后续的属性赋值判定为同一个表达式的一部分,最终表达式没有产生赋值或函数调用行为,触发了「Expected an assignment or function call」语法报错。 - 额外不规范写法(非本次报错诱因,不符合React开发规范):
- 直接通过
document.getElementById获取表单值,React更推荐使用受控组件管理表单输入 - 普通变量
users不会在组件重渲染时保留数据,建议使用useState钩子存储用户列表
- 直接通过
最小改动修复代码
仅修改语法错误即可解决当前报错:
import React from 'react'; import '../css/style.css'; export function Form(){ let users = []; function User(name, surname, age, email, password){ this.name = name; // 原代码此处为逗号,修改为分号 this.surname = surname; this.age = age; this.email = email; this.password = password } function formValues(){ let name = document.getElementById("name").value; let surname = document.getElementById("surname").value; let age = document.getElementById("age").value; let email = document.getElementById("email").value; let pwd = document.getElementById("password").value; var newUser = new User(name, surname,age, email, pwd); users.push(newUser); console.log(users); } return( <div id = "form"> <h2>Sign up today, for free!</h2> <input type="text" id = "name" placeholder = "Name" required/> <input type="text" id = "surname" placeholder = "Surname" required/> <input type="number" id = "age" placeholder = "Age" required /> <input type="email" id = "email" placeholder = "Email" required/> <input type="password" id = "password" placeholder = "Password" required/> <button id = "sign-up" onClick={() => formValues()}>Sign Up</button> </div> ) }
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

