Получение полезной нагрузки после вызова метода 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)

Другие вопросы по тегам