SAP|SAP Spartacus 成功读取 Cart 之后,如何将 payload 插入全局 state
简而言之:通过 cart reducer 配合 ngrx-store.js 框架代码。
搜索关键字 LoadCartSuccess:
文章图片
运行时断点触发:
文章图片
上下文:cartConnector 的回调里。
文章图片
根据关键字 LOAD_CART_SUCCESS 继续搜索:
文章图片
我们明确一点:action 在 reducer 里进行状态迁移。
【SAP|SAP Spartacus 成功读取 Cart 之后,如何将 payload 插入全局 state】根据这个关键字,很快就搜索到了 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的原创文章,尽在:"汪子熙":
文章图片
推荐阅读
- 松软可口易消化,无需烤箱超简单,新手麻麻也能轻松成功~
- 论刘备的成功之道
- 有一种成功,叫“我有时间陪家人”
- 21天|21天|羊多多组合《书都不会读,你还想成功》
- 高度自律等于成功的第一步
- 没有人能随随便便成功
- 积极探索|积极探索 绽放生命 ???——心心相印计划:青少年心理工作研讨小组全国大型公益行动第二次活动包头市青山区分校圆满成功
- 日反思成功效率手册0114-2019爱诺燕儿(周1)D621
- 只要奋斗,人人都能成功吗()
- Waking|Waking Fitness唤醒真实的自己