javascript - React - 如何使用 handleInputChange 函数来更改状态值内的状态值?
问题描述
我目前正在尝试使用一个输入字段来编辑状态值内的状态值。以下是状态示例
this.state = {
modalDevice: {
deviceName: "text" //this is what I want changed
}
}
以下是我的句柄输入更改功能:
handleInputChange = (event) => {
const { value, name } = event.target;
this.setState({
[name]: value,
});
};
以下是我称之为的领域:
<TextField
label="Device Name"
value={this.state.modalDevice.deviceName}
name="deviceName"
variant="outlined"
required={true}
className="classes.textField"
style={{ width: 300 }}
onChange={this.handleModalInputChange}
InputLabelProps={{
classes: {
root: classes.cssLabel,
focused: classes.cssFocused,
},
}}
InputProps={{
classes: {
root: classes.cssOutlinedInput,
focused: classes.cssFocused,
notchedOutline: classes.notchedOutline,
input: classes.input,
},
}}
/>
我该怎么做呢?
解决方案
您可以使用扩展运算符复制旧状态信息,然后再用新内容覆盖它:
this.setState({
...this.state,
modalDevice: {
...this.state.modalDevice
[name]: value,
},
});
推荐阅读
- microservices - 无法从消息消费者使用 Feign 客户端
- jquery - 表单提交的jQuery事件委托不起作用
- google-app-engine - GAE 数据存储复合索引不起作用
- java - 为什么在这个排序数组场景的二进制搜索中仍然存在错误情况?
- html - 将文本放在右对齐 div 容器的底部
- c# - 如何安全地获取控件的特定基本类型?
- amazon-web-services - 在 AWS 应用程序负载均衡器中启用 HSTS 的选项
- c# - 在 c# 类中使用 null 或 Empty 单例?
- amazon-web-services - 如何使用 boto3 激活用户定义的成本分配标签
- r - 如何删除 plot.xts 中的网格线