我有一个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