@sharkdest

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

Здравствуйте,

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


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


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

Подскажите, пожалуйста, что я делаю не так.
  • Вопрос задан
  • 116 просмотров
Решения вопроса 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
    }
})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
22 апр. 2019, в 14:54
7000 руб./за проект
22 апр. 2019, в 14:43
150000 руб./за проект
22 апр. 2019, в 14:31
55000 руб./за проект