Я обновляю набор объектов с помощью запроса HTTP Patch к удаленному серверу. Ответ серверной части включает только обновленные сущности (т.е. не все сущности).
Я установил свой редуктор с адаптером состояния сущности и использую 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
?
...state
? потому что...adapter.updateMany
уже возвращает состояние. Может быть проблема. - person Okan Aslankan   schedule 15.01.2018undefined
/ пустые значения, mergeDeepWith реализации структуры данных Record. Приведу пример в качестве ответа, если вы не сможете добиться этого завтра. - person Shahar Galukman   schedule 15.01.2018updateMany
здесь быть не должно, Reducer должен получать обновленную запись только в полезной нагрузке для такого рода вещей, вы должны использовать эффекты, иначе ваш код выглядит абсолютно великолепно .... Он должен работать нормально, если вы попробуете с некоторыми жестко запрограммированными значениями. - person Ashwani Kumar   schedule 18.01.2018