Как обновить подмножество сущностей с помощью ngrx-entity?
Я обновляю набор сущностей, используя HTTP Patch request, для удаленного бэкэнда. Ответ от бэкэнда включает только обновленные объекты (т. Е. Не все объекты).
Я установил свой редуктор с помощью адаптера состояния объекта и использую 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
?
1 ответ
Решение
Вы не должны распространяться так много раз.
Обновление многих принимает состояние в качестве параметра, который вы можете использовать там.
return adapter.updateMany(
action.payload.map((category) => Object.assign({}, {id: category.name, changes: category})),
{ ...state, loaded: true, loading: false }
);