Хочет сохранить (установить) состояние в массиве объектов - PullRequest
0 голосов
/ 02 апреля 2020

у меня есть следующие поля в форме. несколько устройств в форме и на каждом устройстве есть вложенные поля. -

  • изготовления_дата
  • is_exportad
  • имя
  • sign

Когда я отправляю форму, я хочу сохранить все значения в локальном состоянии

, например ie devices {id1 => {name: "ab c", подписать: "xxx", is_exportad: true, дата изготовления: "12/10/2010"}, id2 => {имя: "hhh", знак: "xxfr", is_exportad: false, дата изготовления: "10.12.2011"}

так что я могу получить доступ к значениям, выполнив действия, аналогичные

this.state.device [id1] .name

, когда мне это понадобится позже, у меня есть пробовал как

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

но это выдает только {id1 => {имя: "v", знак: "val"}, id2 => {имя: "v", знак: "val"}}

1 Ответ

0 голосов
/ 02 апреля 2020

Вам нужно распространить существующие значения и в prevState.

let model = id
this.setState(prevState => {
    return {
        ...prevState,
        devices: {
            ...prevState.devices,
            [model]: {
                ...prevState.devices[model],
                [name]: url
            }
        }
    };
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...