如何从ngrx-store-devtools.js里找到actions的触发源头

找到ngrx-store-devtools.js:

如何从ngrx-store-devtools.js里找到actions的触发源头
如何从ngrx-store-devtools.js里找到actions的触发源头

Action输入参数表明,这是一个LoadCmsPageData的Action:

如何从ngrx-store-devtools.js里找到actions的触发源头

LoadCmsPageData定义在core/src/cms/store/actions/page.action.ts里面:

如何从ngrx-store-devtools.js里找到actions的触发源头

还能看到一些其他的action,像SetActiveBaseSite,ClearCartState:

如何从ngrx-store-devtools.js里找到actions的触发源头

但能看到究竟是哪段应用代码触发的这个action吗?

顺着调用栈耐心往下看,就能看到ngrx-store.js里的dispatch API了:

如何从ngrx-store-devtools.js里找到actions的触发源头

我只要在ngrx-store.js的dispatch方法里加log,就能跟踪Spartacus使用store抛出的所有action:

如何从ngrx-store-devtools.js里找到actions的触发源头
如何从ngrx-store-devtools.js里找到actions的触发源头
如何从ngrx-store-devtools.js里找到actions的触发源头
如何从ngrx-store-devtools.js里找到actions的触发源头

ngrx-store.js里的dispatch操作:

如何从ngrx-store-devtools.js里找到actions的触发源头

如果想在指定action type类型处停下来,加个IF条件就行了:

如何从ngrx-store-devtools.js里找到actions的触发源头
如何从ngrx-store-devtools.js里找到actions的触发源头

更多Jerry的原创文章,尽在:“汪子熙”:
如何从ngrx-store-devtools.js里找到actions的触发源头