javascript - ¿ 如何从功能组件 React 中获取表单值?
问题描述
我正在尝试制作一个表格来接收以表格形式获取的新用户数据。这是我的代码:
import React,{useState} from 'react'
export default function FormAdd({callbackSubmit,...props}) {
const [user,setUser] = useState({});
const handleChangeInput = (name,value) => {
setUser((last) => {
[name]:value,
}
);
}
return (
<form
onSubmit={
(e)=>{
e.preventDefault();
callbackSubmit(user)
}
}
className="formadd-container"
>
<input onChange={(e)=>{handleChangeInput(e.target.name,e.target.value)}} name={"firstname"} placeholder="Fist Name" type="text" className="formadd-container__input"/>
<input onChange={(e)=>{handleChangeInput(e.target.name,e.target.value)}} name={"age"} placeholder="Age" type="text" className="formadd-container__input"/>
<input onChange={(e)=>{handleChangeInput(e.target.name,e.target.value)}} name={"gender"} placeholder="Gender" type="text" className="formadd-container__input"/>
<input onChange={(e)=>{handleChangeInput(e.target.name,e.target.value)}} name={"phone"} placeholder="Phone" type="text" className="formadd-container__input"/>
<input value="Add" type="submit" className="formadd-container__button"/>
</form>
)
}
我得到一个错误>预期的“;” 在 handleChangeInput 函数中,当我尝试为用户对象设置值时。
有任何想法吗?
解决方案
您错过了 setState 回调中的返回。
替换这个:
const handleChangeInput = (name,value) => {
setUser((last) => {
[name]:value,
}
);
}
经过:
const handleChangeInput = (name,value) => {
setUser((last) => ({
[name]:value,
})
);
}
推荐阅读
- hadoop - 通过 IIDR CDC 将 DB2 表复制到 Hadoop dsv、.dat 或 .txt 格式
- mvvm - 有没有办法在任务期间通过 ViewModel 锁定屏幕?
- python - elasticsearch子串查询的特例
- javascript - 如何使用 Vue.js 2.6、Vue CLI 4、Vuetify 2.2 中的后端数据在 javascript 中计算总计以显示在数据表列中
- python - 在 python 递归输入中,如何向向上箭头添加功能以生成最新输入的内容?
- arrays - 如何通过将 NaN 添加到较小的数组来匹配两个数组?
- ffmpeg - 使用 ffmpeg 将 tga 转换为 mp4 时出现“解码流 #0:0 时出错:处理输入时发现无效数据”
- python - Python:抑制 parse_expr、sympy 中指数符号的扩展
- mysql - 如何使用 SQL 创建欺诈检测?
- arrays - CollectionView 错误:尝试将第 40 项插入第 0 节,但更新后第 0 节中只有 40 项