在Redux中的reducer中更新嵌套数组

时间:2017-02-26 23:51:58

标签: javascript reactjs ecmascript-6 redux

我正在尝试更新reducer中对象数组中的特定索引。州有一系列对象。 isSearch是对象的属性。在操作的有效负载中,我传递要更新的索引和值。这是我的代码:

case actions.UPDATE:
  return {
    ...state,
    arrObj: {
      ...state.arrObj,
      arrObj[action.payload.index].isSearch : action.payload.isSearch,
    },
  };

我收到此错误Unexpected token, expected , at arrObj[action.payload.index].有人可以告诉我如何更正此错误?

2 个答案:

答案 0 :(得分:1)

我想来自immutability-helper的{​​{1}}包对您更新嵌套的redux状态有很大帮助

npm

答案 1 :(得分:0)

如果您要更新州内的单个值,请尝试以下操作:

case actions.UPDATE:
  var newState = { ...state }
  var arrayObj = newState.arrayObj = state.arrayObj.slice()
  var element = arrayObj[action.payload.index] = { ...arrayObj[action.payload.index] }
  element.isSearch = action.payload.isSearch
  return newState