@n1ksON
мидл

Как возвращать значение динамичного reducer?

Имеется reducer (данный вариант кода нерабочий):
const initialState = {
  param1: '1',
  param2: '2',
  param3: {
    paramParam1: '4',
    paramParam2: '5' // в param3 всегда изменяется только paramParam2
  }
}
const reducer = (state = initialState, action) => {
  switch (action.type) {
    case 'EXAMPLE':
      if (action.name === 'param1' || 'param2') {
        state[action.name] = action.value
      } else {
        state[action.name].paramParam2 = action.value
      }
      return state
  }
  default:
    return state
}
export const actionCreator = (value, name) => ({ type: 'EXAMPLE', value: value, name: name })
// в name приходит свойство, в value - значение


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

Пробовал с Object.keys().length, но он работает не так как мне нужно.
Хочу свести case к виду:
return {
  ...state,
  action.name: action.value
}
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
vovaspace
@vovaspace
Frontend Engineer
return {
  ...state,
  [action.name]: action.value,
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы