乐趣区

关于sap:SAP-Spartacus-成功读取-Cart-之后如何将-payload-插入全局-state

简而言之:通过 cart reducer 配合 ngrx-store.js 框架代码。

搜寻关键字 LoadCartSuccess:

运行时断点触发:

上下文:cartConnector 的回调里。

依据关键字 LOAD_CART_SUCCESS 持续搜寻:

咱们明确一点:action 在 reducer 里进行状态迁徙。

依据这个关键字,很快就搜寻到了 LOAD_CART_SUCCESS 所在的状态迁徙:

能够看到,http.js 上下文里,调用 observer 的 next 办法,将从 Commerce Cloud 后盾返回的 API response,告诉其余观察者。

body 字段里才是真正的 payload:

这里应用 .body, 将 payload 解析进去:

在这段代码里,进行 conversion:

此处触发 Spartacus team 开发的 mergeMap callback:把 HTTP.js 返回的 response,包装成 LoadCartSuccess 的强类型 payload:

包装完之后的强类型 response:

最初 Spartacus cart reducer 被调用:

reducer 执行结束后,咱们就能在 ngrx-store.js 的 combination 函数里的变量 nextState, 看到最新的 cart memory value:

更多 Jerry 的原创文章,尽在:” 汪子熙 ”:

退出移动版