Javascript TypeError:无法读取属性';电子邮件';使用具有多个输入的表单时的未定义

Javascript TypeError:无法读取属性';电子邮件';使用具有多个输入的表单时的未定义,javascript,reactjs,Javascript,Reactjs,我是React的初学者,遇到了一些问题。我得到了一个错误:“TypeError:无法读取未定义的属性‘email’”。请在下面找到错误屏幕截图:- SignIn.js import React from 'react'; import {useState} from 'react'; export default function SignIn() { const{forInp,setForm}=useState({ email:"abc@gmail.

我是React的初学者,遇到了一些问题。我得到了一个错误:“TypeError:无法读取未定义的属性‘email’”。请在下面找到错误屏幕截图:-

SignIn.js

    import React from 'react';
import {useState} from 'react';

export default function SignIn()
{
    const{forInp,setForm}=useState({
        email:"abc@gmail.com",
        password:""
    });
    
    function handleChange(event)
    {
        setForm({
            ...forInp,
            [event.target.name]:event.target.value});
    }

    function handleSubmit(event)
    {
        event.preventDefault();
        setForm({[event.target.name]:""});
       
    }   
    return(
        <div>
            <form onSubmit={handleSubmit}>
                <input type="email" name="email" value={forInp.email} placeholder="Email" onChange={handleChange}/>
                <input type="Password" name="password" value={forInp.password} placeholder="Password" onChange={handleChange}/>
                
                </form>
            </div>
    );
}
从“React”导入React;
从“react”导入{useState};
导出默认函数SignIn()
{
const{forInp,setForm}=useState({
电子邮件:“abc@gmail.com",
密码:“
});
函数句柄更改(事件)
{
刚毛({
…forInp,
[event.target.name]:event.target.value});
}
函数handleSubmit(事件)
{
event.preventDefault();
setForm({[event.target.name]:“”});
}   
返回(
);
}

已修改使用USeState正确返回格式的代码,。它返回数组而不是对象。 以下是codesandbox链接:

从“React”导入React;
从“react”导入{useState};
导出默认函数SignIn(){
常量[forInp,setForm]=useState({
电子邮件:“abc@gmail.com",
密码:“
});
函数句柄更改(事件){
刚毛({
…forInp,
[event.target.name]:event.target.value
});
}
函数handleSubmit(事件){
event.preventDefault();
setForm({[event.target.name]:“”});
}
返回(
);
}

您需要更改以下内容:

const{forInp,setForm}=useState({
        email:"abc@gmail.com",
        password:""
    });
为此:

const [ forInp, setForm ] = useState({
    email: "abc@gmail.com",
    password: ""
  });
说明:


React.useState返回一个
[状态,函数]
数组,而不是一个对象。

useState
返回一个数组,而不是一个对象,因此将
{forInp,setForm}
更改为
[forInp,setForm]
const{forInp,setForm}=useState({
        email:"abc@gmail.com",
        password:""
    });
const [ forInp, setForm ] = useState({
    email: "abc@gmail.com",
    password: ""
  });