我遇到的问题是我的应用程序没有调度某些操作或在调度操作时未调用某些效果(请参阅ngrx effect not being called when action is dispatched from component)。
我想知道如何调试ngrx存储,操作和效果。
由于ngrx的打字稿来源在我的环境中不可用(似乎只有类型可用),还有其他方法可以知道商店和效果中发生了什么吗?
P.S。 似乎dev存储工具只允许查看reducers引起的更改。
答案 0 :(得分:1)
正如您所发现的,redux devtools扩展也是监控ngrx中商店活动的便捷方式。但是,它会记录所有调度的操作,包括ngrx效果发出的操作,无论reducer是否依赖它们来更新存储。如果你没有看到从效果中发送的动作,那么其他的东西就是阻止他们发送的问题。
一般来说,暂时调试可观察链的简单方法,包括ngrx效果和存储订阅,是在代码之前和/或之后通过.do()
运算符,似乎不起作用。它不会扰乱周围的代码流,它可以让你跟踪日志记录或添加断点进行检查。
有些人将.do()
日志记录在自定义运算符中,甚至尝试在运算符之间自动插入.do()
以进行跟踪,以避免在整个位置手动编写它们。我喜欢保持简单,并且在调试特定块时手动插入它们并不是那么糟糕恕我直言。