Когда ты обновляешь объекты состояния, можешь передать объект в setState(), который объединится с текущим состоянием. Это требует создания нового объекта вместо изменения существующего.
Метод Object.assign():
const user = Object.assign({}, this.state.user, { age: 42 });
this.setState({ user });
Spread-оператор (рекомендуется):
const user = { ...this.state.user, age: 42 };
this.setState({ user });
Spread-оператор — это более современный и лаконичный способ создания поверхностных копий объектов.
Для более сложных обновлений или когда тебе нужно обратиться к предыдущему состоянию, передай функцию в setState(). Это гарантирует, что ты работаешь с самым актуальным значением состояния:
this.setState(prevState => ({
user: { ...prevState.user, age: 42 }
}));
Этот подход особенно важен, когда несколько обновлений состояния происходят один за другим, так как он гарантирует, что каждое обновление основано на правильном предыдущем состоянии.
Оператор spread и Object.assign() функционально идентичны при обновлении объектов состояния, единственное отличие в том, что оператор spread более современный.
Новый — ещё не проверен сообществом
Вы