鍍金池/ 問答/HTML/ redux如何修改數(shù)組的某一項

redux如何修改數(shù)組的某一項

假設我redux的state中有一個數(shù)組lists

lists: [{text: 'one', show: false}, {text: 'two', show: false}, {text: 'three', show: false}]

現(xiàn)在我想修改其中一個(假設第二個)的數(shù)據(jù)

dispatch({
  type: 'CHANGE_SHOW_STATE',
  index: 1,
  show: true
})

那在reducer中我應該如何修改數(shù)組,而不影響原來的數(shù)據(jù)?

const reducers = (state, action) => {
  case 'CHANGE_SHOW_STATE': ???
}

求???解答

回答
編輯回答
櫻花霓
const reducers = (state, action) => {
  case 'CHANGE_SHOW_STATE': {
    const { lists } = state
    const updatedItem = xxx
    const updatedLists = [
       ...lists.slice(0, 1),
       updatedItem,
       ...lists.slice(2),
    ]
    return {
       ...state,
       lists: updatedLists,
    }
  }
}
2018年2月18日 00:29
編輯回答
蔚藍色
const reducers = (state, action) => {
  case 'CHANGE_SHOW_STATE': {
    const { lists } = state
    lists[action.index].show = action.show;
    return {
       ...state,
       lists
    }
  }
}
2018年7月28日 20:07