想要在对象数组中保存(设置)状态
Wants to save(set) state in array of objects
我在表单上有以下字段。
表单上有多个设备,每个设备上都有嵌套字段。
-
- manufacture_date
- is_exportad
- 名字
- 签名
当我提交表单时,我想在本地状态中维护所有值
比如设备{id1=>{name: "abc",sign: "xxx", is_exportad: true, manufacture_date: "12/10/2010" },id2=>{name: "hhh",sign: "xxfr", is_exportad: false, manufacture_date: "12/10/2011"}
所以我可以通过类似于
的方式访问值
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
}
}
};
});
我在表单上有以下字段。 表单上有多个设备,每个设备上都有嵌套字段。 -
- manufacture_date
- is_exportad
- 名字
- 签名
当我提交表单时,我想在本地状态中维护所有值
比如设备{id1=>{name: "abc",sign: "xxx", is_exportad: true, manufacture_date: "12/10/2010" },id2=>{name: "hhh",sign: "xxfr", is_exportad: false, manufacture_date: "12/10/2011"}
所以我可以通过类似于
的方式访问值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
}
}
};
});