Как обновить подмножество сущностей с помощью 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 }
);
Другие вопросы по тегам