我在表单上有以下字段。 表单上的多个设备,每个设备上都有嵌套字段。 -
提交表单时,我想将所有值保持在本地状态
like即devices {id1 => {name:“ abc”,sign:“ xxx”,is_exportad:true,制造日期:“ 12/10/2010”},id2 => {name:“ hhh”,sign: “ xxfr”,is_exportad:否,制造日期:“ 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”}}
答案 0 :(得分:0)
您还需要分布prevState
中的现有值。
let model = id
this.setState(prevState => {
return {
...prevState,
devices: {
...prevState.devices,
[model]: {
...prevState.devices[model],
[name]: url
}
}
};
});