@sharkdest

Как правильно перезаписать значение state?

Вот мой state:
this.state = {
...
 checkboxes: {
   a: true,
   b: true
 }
};


так я пытаюсь изменить state:
...
this.setState({
 checkboxes[e.target.value]= !state
});


и в итоге получаю Syntax error:
5c35be069e42f369201472.png

Подскажите, пожалуйста, что я делаю не так.
  • Вопрос задан
  • 234 просмотра
Решения вопроса 1
Vlad_IT
@Vlad_IT
Front-end разработчик
Вам нужно получить ваш объект, изменить поле и отослать обратно в setState

1) через клонирование объекта
let checkboxes= Object.assign({}, this.state.checkboxes); // Создаем копию, можно просто ссылку взять, но копию безопаснее
checkboxes[e.target.value] = false; // изменяем поле
this.setState({checkboxes}); // Сохраняем

2) через оператор spread
this.setState({
    checkboxes: {
          ...this.state.checkboxes,
          [e.target.value]: false // измененное поле объекта checkboxes
    }
})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы