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]]
};