如何使用 ngrx-entity 更新实体子集?
How to update a subset of entities with ngrx-entity?
我正在使用对远程后端的 HTTP 补丁请求更新一组实体。来自后端的响应仅包括更新后的实体(即,并非所有实体)。
我使用实体状态适配器设置我的减速器并使用 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
中包含的实体?
你不应该传播这么多次。
Update many 将状态作为参数,您可以在其中使用您的 spread fu。
return adapter.updateMany(
action.payload.map((category) => Object.assign({}, {id: category.name, changes: category})),
{ ...state, loaded: true, loading: false }
);
我正在使用对远程后端的 HTTP 补丁请求更新一组实体。来自后端的响应仅包括更新后的实体(即,并非所有实体)。
我使用实体状态适配器设置我的减速器并使用 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
中包含的实体?
你不应该传播这么多次。
Update many 将状态作为参数,您可以在其中使用您的 spread fu。
return adapter.updateMany(
action.payload.map((category) => Object.assign({}, {id: category.name, changes: category})),
{ ...state, loaded: true, loading: false }
);