reactjs - 使用 useState 为多个值反应表单
问题描述
我在这里有一个演示
这是一个带有打字稿的简单反应形式
字段完成时是否可以使用 useState 捕获输入字段数据
表单不仅仅是一个数据,而是 3 个数据 - 用户名、密码和电子邮件
我可以用一个值做到这一点
onChange={e => setContact(e.target.value)}
但我可以为 3 个单独的值做这件事吗
解决方案
您可以使用计算属性来做到这一点。
首先为您的每个输入添加一个名称属性,其值为“用户名”、“密码”、“电子邮件”,然后:
onChange={e => setContact(contact => ({...contact, [e.target.name]: e.target.value}))}
编辑:在 17 之前的 React 版本中,事件被池化并且 setContact 更新函数异步运行,因此需要以这种方式持久化事件:
onChange={e => {
e.persist();
setContact(contact => ({...contact, [e.target.name]: e.target.value}));
}}
推荐阅读
- python - numpy/pandas 可以处理作用于空值的布尔运算符吗?
- operating-system - 为什么在 cpu 内核之间调度线程很昂贵?
- nginx - 拒绝自定义目录 nginx 的权限
- datetime - 向 webapi 输入日期
- php - 000webhost api 返回 net::ERR_EMPTY_RESPONSE
- javascript - 如何使用ajax,PHP制作自动填充信息文本框和数据验证
- ruby-on-rails - 无法通过 Ruby on Rails 中的 Slim 提供静态图像
- c# - 如何在 MVC 中的动作的单元测试中模拟类
- r - Power BI:创建报表时不会刷新实时(日期/时间数据)
- c# - 光线从一个物体投射到另一个物体的一侧