我正在使用HTTP Patch请求对远程后端更新一组实体。来自后端的响应仅包括更新后的实体(即,不是所有实体)。
我使用实体状态适配器设置了reducer,并使用updateMany更新实体:
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中的实体?
发布于 2018-01-16 21:13:13
你不应该传播这么多次。
Update many将状态作为一个参数,你可以在其中使用你的扩散函数。
return adapter.updateMany(
action.payload.map((category) => Object.assign({}, {id: category.name, changes: category})),
{ ...state, loaded: true, loading: false }
);https://stackoverflow.com/questions/48222655
复制相似问题