Встречается на собеседованиях • сегодня

Возвращает ли Reducer новое состояние, или меняет старое

Reducer всегда должен возвращать новое состояние, а не изменять старое. Это фундаментальное правило Redux, основанное на принципах иммутабельности.

Если reducer изменяет существующий state напрямую, Redux не сможет корректно определить изменения, что приведёт к проблемам с обновлением UI и нарушит работу devtools.

Пример правильного reducer:

javascript
function counterReducer(state = 0, action) {
  switch(action.type) {
    case 'INCREMENT':
      return state + 1; // Возвращаем новое значение
    case 'DECREMENT':
      return state - 1;
    default:
      return state;
  }
}

Для сложных структур используйте spread-оператор или библиотеки типа Immer:

javascript
case 'UPDATE_USER':
  return {
    ...state,
    user: {
      ...state.user,
      name: action.payload
    }
  };
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы