使用Redux中的Object属性中的不同数组替换数组而不进行变异

时间:2017-04-26 22:59:38

标签: redux react-redux

我有一个redux状态,它不像推荐的redux状态那样扁平化。但是,除了一个之外,我的所有CRUD操作都完全正常运行。

我的状态格式如下:

{
  id: "adsfli23r89hdasd"
  items: [
    {...stuff},
    {...otherStuff},
    {...differentStuff}
  ]
  lastUpdated:"2017-04-26T22:14:44.204Z"
}

我有一个reducer,我希望能够用一个新值替换整个items数组,但是无法让它工作。

所以这样的事情有效:

return {
  ...state,
  items: [],
  lastUpdated: action.lastUpdated
}

但这不是:

return {
  ...state,
  items: action.myNewStateArray,
  lastUpdated: action.lastUpdated
}

其中action.myNewStateArray通过动作创建者传递到reducer中,并且等于:

[
  {...newStuff},
  {...newOtherStuff}
]

注意:action.myNewStateArray可能有不同数量的项目,应假设与现有状态完全不同。

任何人都知道如何让这个工作?提前谢谢!

更新:这是一个包含更深入代码的要点,https://gist.github.com/sambrodie/76e99e08932cd77765dc25f094a51fbf

0 个答案:

没有答案