Получение полезной нагрузки после вызова метода update для CartEntryConnector
Я использовал метод updateEntry службы ActiveCartService для обновления записи корзины. После этого сработал эффект updateEntry$ из класса CartEntryEffects, вернувший новое действие.
updateEntry$: Observable = this.actions$.pipe(
ofType(CartActions.CART_UPDATE_ENTRY),
map((action: CartActions.CartUpdateEntry) => action.payload),
concatMap(payload =>
this.cartEntryConnector
.update(payload.userId, payload.cartId, payload.entry, payload.qty)
// should be my logic with payload
.pipe(
map(() => {
return new CartActions.CartUpdateEntrySuccess({
userId: payload.userId,
cartId: payload.cartId,
});
}),
Как правильно получить эту полезную нагрузку? Или я могу отменить этот эффект или добавить к нему свою логику?
1 ответ
Это зависит от того, что вы пытаетесь сделать с полезной нагрузкой.
Если вы хотите обработать его до того, как детали будут обновлены в Commerce, то обычно это делается с помощью соединителей и адаптеров. См. https://sap.github.io/spartacus-docs/connecting-to-other-systems/
Если вы хотите сослаться на обновленную запись и отобразить ее, вы можете получить Observable через ActiveCartService. См., Например, компонент AddToCart (https://sap.github.io/spartacus/components/AddToCartComponent.html), который объявляетcartEntry$: Observable<OrderEntry>
а затем в ngOnInit() делаетthis.cartEntry$ = this.activeCartService.getEntry(this.productCode)