首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ngrx-entity更新实体子集?

如何使用ngrx-entity更新实体子集?
EN

Stack Overflow用户
提问于 2018-01-12 16:56:40
回答 1查看 7.1K关注 0票数 7

我正在使用HTTP Patch请求对远程后端更新一组实体。来自后端的响应仅包括更新后的实体(即,不是所有实体)。

我使用实体状态适配器设置了reducer,并使用updateMany更新实体:

代码语言:javascript
复制
case settings.SettingsActionTypes.UpdateSettingsSuccess: {
   return {
     ...state,
     ...adapter.updateMany(action.payload.map((category) => Object.assign({}, {id: category.name, changes: category})), state),
     loaded: true,
     loading: false,
   }
 }

虽然这会更新接收到更新的实体,但它会删除后端未返回的所有其他实体。

有没有办法告诉ngrx只更新包含在action.payload中的实体?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-16 21:13:13

你不应该传播这么多次。

Update many将状态作为一个参数,你可以在其中使用你的扩散函数。

代码语言:javascript
复制
return adapter.updateMany( 
   action.payload.map((category) => Object.assign({}, {id: category.name, changes: category})), 
   { ...state, loaded: true, loading: false }
);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48222655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档