调用 CartEntryConnector 的 'update' 方法后获取 payload

Getting a payload after calling 'update' method of CartEntryConnector

我使用了 ActiveCartService 的 'updateEntry' 方法来更新购物车的条目。之后,来自 CartEntryEffects class 的 'updateEntry$' 效果被触发,返回了新的操作。

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,
            });
          }),

获取此有效负载的正确方法是什么? 或者我可以覆盖这个效果或添加我的逻辑吗?

这取决于您要对负载执行的操作。

如果您想在详细信息更新到 Commerce 之前对其进行处理,那么这通常由连接器和适配器处理。参见 https://sap.github.io/spartacus-docs/connecting-to-other-systems/

如果您想引用更新的条目并显示它,那么您可以通过 ActiveCartService 获取一个 Observable。例如,参见声明 cartEntry$: Observable<OrderEntry> 的 AddToCart 组件 (https://sap.github.io/spartacus/components/AddToCartComponent.html#source),然后在 ngOnInit() 中执行 this.cartEntry$ = this.activeCartService.getEntry(this.productCode)