Императивный подход к обновлению вложенного состояния
В React обновления состояния неизменяемы. Это означает, что для обновления вложенного объекта или массива вы не можете просто изменить его свойства и ожидать, что изменения отразятся в пользовательском интерфейсе. Вместо этого вам нужно создать новый объект или массив, включающий обновленные значения, а затем передать его в setState.
Рассмотрим следующий пример, в котором мы хотим обновить свойство name объекта с индексом 1 в массив элементов, хранящийся в состоянии:
handleChange: function (e) {
// Make a copy of the items array
let items = [...this.state.items];
// Make a copy of the item object at index 1
let item = {...items[1]};
// Change the name property of the copied item
item.name = 'New Name';
// Replace the item at index 1 with the updated item
items[1] = item;
// Update the state with the new items array
this.setState({items});
},
В этом подходе мы используем синтаксис распространения (...) для создания поверхностных копий массива элементов и объекта элемента с индексом 1. Затем мы изменяем свойство имени скопированного элемента и заменяем элемент с индексом 1 с обновленной версией. Наконец, мы обновляем состояние с помощью массива новых элементов.
Этот подход прост и хорошо работает для простых обновлений состояния. Однако он может стать громоздким и подверженным ошибкам для сложных обновлений состояния, включающих несколько вложенных объектов или массивов.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3