Javascript TypeError:无法读取属性';电子邮件';使用具有多个输入的表单时的未定义
我是React的初学者,遇到了一些问题。我得到了一个错误:“TypeError:无法读取未定义的属性‘email’”。请在下面找到错误屏幕截图:- SignIn.jsJavascript 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.
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: ""
});