javascript - “解析错误:类型转换表达式应该用括号括起来”与 React Hooks
问题描述
我有许多输入值与对象的属性匹配:
示例:
const [fields, setFields] = useState({
city: ""
})
<input type="text" name="city" value={fields.city} onChange={e => handleChange(e) />
现在,我想做一个 handleChange 函数,当输入值发生变化时,它会更新对象值,
function handleChange(e) {
setFields(...fields, [e.target.name]: e.target.value)
}
但是当我这样做时,我得到了错误
“解析错误:类型转换表达式应该用括号括起来”
,
有人能帮我吗 ?谢谢 !
解决方案
您在字段周围缺少括号,因为它是一个对象:
function handleChange(e) {
setFields({...fields, [e.target.name]: e.target.value})
}
同样在这种情况下,最好使用 的函数形式setState
,因为下一个状态的值取决于前一个状态:
function handleChange(e) {
setFields(currentFields => ({...currentFields, [e.target.name]: e.target.value}))
}
推荐阅读
- c# - c#变换直线方程以改变参考原点和角度
- python - 如何加快python中的缩放过程?
- python - Microsoft Bot Emulator 显示“发送失败。重试”。VSCode 显示 KeyError: 'HTTP_CONTEXT_TYPE'
- android - Google Play 控制台-在内部测试中上传了一个新版本,但生产版本也在审核中
- javascript - 反应严格模式下的 Material UI 控制台警告
- android - mapView.onCreate 在 api 级别 26 的cordova android 应用程序中工作正常,但在 api 级别 28 时崩溃
- javascript - 处理 webdriverio 超时
- phpmyadmin - 创建数据库时的phpmyadmin警告
- html - 我的 css 网格布局没有在 chrome 上填充它的容器。是什么导致了一小部分像素的丢失?
- jenkins - Jenkins 归档 groovy 问题