@Sanchik97

Как изменить значение поля объекта в массиве store в redux?

В массиве store хранятся объекты, у которых есть поле count. По событию CHANGE_ITEM_COUNT у определенного элемента меняется значение count в зависимости от action, который приходит в payload вместе с id этого элемента. Сейчас стоит задача динамически обновить массив store, заменив старый объект новым и так, чтобы сохранился порядок. Как можно это реализовать?

case CHANGE_ITEM_COUNT:

			const itemCount = state.find(({id}) => id === action.payload.id);
			if (action.payload.action === 'decrement' && itemCount.count > 1) {
				itemCount.count--
			}
			if (action.payload.action === 'increment') {
				itemCount.count++
			}
  • Вопрос задан
  • 1185 просмотров
Решения вопроса 1
0xD34F
@0xD34F
case CHANGE_ITEM_COUNT:
  return state.map(n => n.id === action.payload.id
    ? {
        ...n,
        count: Math.max(1, n.count + (({
          increment:  1,
          decrement: -1,
        })[action.payload.action]) || 0),
      }
    : n
  );
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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