Javascript React Switch Case с динамическими ключами? - PullRequest
0 голосов
/ 21 марта 2019
const changeSelectValue = (state, action) => {
switch (action.id) {
    case 'myFirstKey':
        updatedState = {
            ...state,
            myFirstKey: action.value
        }
    case 'mySecondKey':
        updatedState = {
            ...state,
            mySecondKey: action.value
        }
        break;
    default:
        break;
}}

Я не могу найти решение или не знаю, как его найти, поэтому, возможно, вы можете помочь.Этот случай переключения обновляет ключ внутри состояния с помощью action.id

Поскольку у меня много разных ключей для обработки, этот случай переключения становится очень длинным, должен быть способ сделать этот способ проще, ноЯ не могу заставить его работать.Спасибо!

Ответы [ 2 ]

4 голосов
/ 21 марта 2019

Вам не нужен переключатель, если он динамический.

const changeSelectValue = (state, action) => {
  updatedState = {
    ...state,
    [action.id]: action.value
  }
}
0 голосов
/ 21 марта 2019

Можете ли вы попробовать:

const changeSelectValue = (state, action) => {
   let updatedState = {...state}
   updatedState[action.id] = action.value
   return updatedState
}
...