使用Redux中的扩展运算符更新Mapfield

时间:2017-04-13 17:48:14

标签: 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
  };

因此,当保存产品时,我发送一个帖子。如果帖子回来,它会发送新实体(action.item)

状态如下:

state = {
  isFetching: false,
  didInvalidate: true,
  items: new Map(),
  itemsIds: []
}

所以项目实际上是map(id - > product),我也有一个id数组。我现在如何更新这些?我想我看到了一些有效但我再也找不到的东西了。 ......项目和...... state.items虽然没有工作。

在sidenode上:这是应该做的吗?没有复制数据,只是在管理选定内容的reducer中有id?

1 个答案:

答案 0 :(得分:0)

地图表示为[[key1, value1], [key2, value2]]

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

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

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