javascript - 在带有 Hooks 的 React 中以两种方式绑定多个输入
问题描述
我有两个输入。如果我想将输入值与状态变量绑定,我使用这个 -
状态:
const [message, setMessage] = useState('')
const [newUser, setNewUser] = useState('')
绑定它们的方法:
const handleMessageChange = (e) => setMessage(e.target.value)
const handleUserChange = (e) => setNewUser(e.target.value)
我使用输入上的 onChange 属性调用这些方法。
我的问题:
我可以使用通用的 handleChange 方法而不是为每个输入/状态对显式创建方法吗?如果是这样,怎么做?
解决方案
您可能会考虑将两者都存储user
在message
一个{data}
状态持有者中,并handleChange
仅修改状态对象中的相关键
const [data, setData] = useState({user: "", message: ""})
const handleChange = e => setData({...data, [e.target.name]: e.target.value})
<input name="message" value={data.message} onChange={e => handleChange(e)} />
<input name="user" value={data.user} onChange={e => handleChange(e)} />
推荐阅读
- wpf - WPF XAML 将资源键绑定到属性
- android - 以编程方式更新 APK
- prometheus - Prometheus AlertManager,当指标值发生变化时向 Slack 通道发出警报
- apache - httpd 未显示/使用最新版本的 apache(通过 brew)
- python - 如何一次进行多个替换?| PYTHON
- javascript - Angular - indexOf JS 不适用于 *ngIf
- 3d - 从 vtkImageData 创建一个体积模型
- python - 如何为随机生成的数字设置超时
- typescript - 检查变量是否属于具有相同属性的 Typescript 中的自定义类型
- scala - 扩展特征时,类型边界约束限制在更高种类中