我的应用程序在分派操作时未分派某些操作或未调用某些效果时遇到问题(请参阅从组件分派操作时未调用 ngrx 效果)。
我想知道如何调试ngrx 商店、动作和效果。
由于我的环境中没有 ngrx 的打字稿源(似乎只有打字可用),还有其他方法可以了解商店中发生的事情和效果吗?
PS似乎开发商店工具只允许查看由减速器引起的变化。
我的应用程序在分派操作时未分派某些操作或未调用某些效果时遇到问题(请参阅从组件分派操作时未调用 ngrx 效果)。
我想知道如何调试ngrx 商店、动作和效果。
由于我的环境中没有 ngrx 的打字稿源(似乎只有打字可用),还有其他方法可以了解商店中发生的事情和效果吗?
PS似乎开发商店工具只允许查看由减速器引起的变化。
正如您所发现的,redux devtools 扩展也是一种在 ngrx 中监控 store 活动的便捷方式。但是,它会记录所有已调度的操作,包括由 ngrx 效果发出的操作,无论减速器是否对它们进行操作以更新存储。如果您没有看到从效果中分派的动作,那么其他问题就是阻止它们分派的问题。
通常临时调试可观察链的一种简单方法,包括ngrx 效果和存储订阅,是.do()
在似乎不起作用的代码之前和/或之后通过运算符。它不会干扰它周围的代码流,它允许您进行跟踪日志记录或添加断点以进行检查。
有些人将.do()
日志记录在自定义运算符中,甚至尝试.do()
在运算符之间自动插入以进行跟踪,以避免手动将它们写入所有地方。我喜欢保持简单,并且在调试特定块时临时手动插入它们并不是那么糟糕恕我直言。