Вступить в клуб →
средняяjavascriptReact и управление состоянием

Редьюсер корзины без мутаций состояния

Напишите функцию cartReducer(state, action) для useReducer.

Состояние — { items: [{ id, qty }] }. Действия:

  • { type: 'add', id } — если товара нет, добавить в конец с qty: 1; если есть — увеличить qty на 1.
  • { type: 'setQty', id, qty } — выставить количество; при qty меньше 1 удалить товар. Для отсутствующего товара ничего не делать.
  • { type: 'remove', id } — удалить товар.
  • Неизвестное действие — вернуть тот же объект состояния.

Входное состояние менять нельзя: при изменениях возвращайте новые объекты и массивы.

заготовка решения

function cartReducer(state, action) {
  // ваш код
  return undefined;
}

🔒 Проверка ответа — для участников клуба

  • Автотесты прямо в браузере
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела