reactjs - 想要在对象数组中保存(设置)状态
问题描述
我在表单上有以下字段。 表单上有多个设备,每个设备上都有嵌套字段。 -
- 生产日期
- is_exportad
- 姓名
- 符号
当我提交表单时,我想将所有值保留在本地状态
比如 ie devices{id1=>{name: "abc",sign: "xxx", is_exportad: true, producer_date: "12/10/2010" },id2=>{name: "hhh",sign: "xxfr" ,is_exportad:假,制造日期:“2011 年 12 月 10 日”}
所以我可以通过类似于
this.state.device[id1].name
当我以后需要它时,我试过了
let model = id
this.setState(prevState => {
return {
[model]: {
...prevState[model],
[name]: url
}
};
});
但这只会产生 {id1=>{name: "v", sign: "val" }, id2 => {name: "v", sign: "val" }}
解决方案
您还需要传播现有值prevState
。
let model = id
this.setState(prevState => {
return {
...prevState,
devices: {
...prevState.devices,
[model]: {
...prevState.devices[model],
[name]: url
}
}
};
});
推荐阅读
- ansible - ansible - 块条件被忽略
- android - Kotlin Room 找不到字段的吸气剂
- php - 为什么每次运行我的登录序列后我的 php $_POST 和 $_SESSION 都没有清除?
- javascript - node.js 中函数的默认对象命名空间是什么?
- sql - 如何在 postgres 中选择 json 数组的大小?
- file-rename - 如何在 Alpine 上安装 perl rename?
- android - 看不到回收站视图
- c# - C# 自动化测试在执行所有逻辑之前无错误退出
- android - 替换 AAR 库中的字符串资源
- android - 我想为带有色度视频的相机创建 Android 应用程序