You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 10:27:01