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

Wants to save(set) state in array of objects

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

当我提交表单时,我想在本地状态中维护所有值

比如设备{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
            }
        }
    };
});