Как добавить reducer для пользователей в Redux Store?

Верните новый объект состояния с users из payload и loading:false. В обычном reducer нельзя мутировать state или выполнять сетевую загрузку; он только вычисляет новое состояние.

Короткий ответ

Что ответить на собеседовании

Верните новый объект состояния с users из payload и loading:false. В обычном reducer нельзя мутировать state или выполнять сетевую загрузку; он только вычисляет новое состояние.

Подробный разбор

Ответ с пояснениями

Условие

Учебное состояние Redux имеет форму {users: [], loading: false}. Действие {type:'users/received', payload:[{id:1,name:'A'}]} должно заменить список и завершить загрузку. Reducer пишется без Redux Toolkit и Immer. Как реализовать переход?

Ответ

Верните новый объект состояния с users из payload и loading:false. В обычном reducer нельзя мутировать state или выполнять сетевую загрузку; он только вычисляет новое состояние.

const initial = {users: [], loading: false};
function reducer(state = initial, action) {
  if (action.type === 'users/received') {
    return {...state, users: [...action.payload], loading: false};
  }
  return state;
}

Контракт предполагает валидный массив payload. Запрос выполняется вне reducer, затем отправляется действие результата. В большом Store users может быть отдельным slice; наличие такого reducer определяется конфигурацией проекта, а не самим фактом использования Store.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее