想要在对象数组中保存(设置)状态

时间:2020-04-02 13:25:13

标签: reactjs react-state

我在表单上有以下字段。 表单上的多个设备,每个设备上都有嵌套字段。 -

  • 制造日期
  • is_exportad
  • 名称
  • 签名

提交表单时,我想将所有值保持在本地状态

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”}}

1 个答案:

答案 0 :(得分:0)

您还需要分布prevState中的现有值。

let model = id
this.setState(prevState => {
    return {
        ...prevState,
        devices: {
            ...prevState.devices,
            [model]: {
                ...prevState.devices[model],
                [name]: url
            }
        }
    };
});