Reactjs 在Redux中使用spread运算符更新地图字段

Reactjs 在Redux中使用spread运算符更新地图字段,reactjs,redux,babeljs,Reactjs,Redux,Babeljs,从减速器中摘录: case PRODUCT_SAVED_OK: return { ...state, isFetching: false, didInvalidate: false // TODO how is this done? //items[action.item.id]: action.item // TODO Push the new ID if it was a new Product }; 因此,当一个产品被保存时,我会发

从减速器中摘录:

case PRODUCT_SAVED_OK:
  return {
    ...state,
    isFetching: false,
    didInvalidate: false
    // TODO how is this done?
    //items[action.item.id]: action.item
    // TODO Push the new ID if it was a new Product
  };
因此,当一个产品被保存时,我会发送一个帖子。如果post返回,它将发送新实体(action.item)

该州的情况如下:

state = {
  isFetching: false,
  didInvalidate: true,
  items: new Map(),
  itemsIds: []
}
所以项目实际上是映射(id->product),我还得到了一个id数组。我现在如何更新这些?我想我看到了一些有用的东西,但我再也找不到了。。。items和…state.items不起作用


旁白:这是应该做的吗?不复制数据,只在管理所选内容的还原器中具有id?

映射表示为
[[key1,value1],[key2,value2]]

因此,为了更新它,添加
[action.item.id,action.item]

return {
  ...state,
  isFetching: false,
  didInvalidate: false

  items: [...state.items, [action.item.id, action.item]]
};