我在我的角度应用程序中使用redux已经有好几个星期了,但我只是注意到了一些事情:
当我选择我的商店的一部分来监控变化时,让我们这样说:
在app.component.ts的ngOnInit()中
this.ngRedux.select(s => s.counter).subscribe((counter: number) => {
console.log(counter)
});
每次我的计数器值改变时都会执行console.log(计数器),这没关系,这就是它的工作方式 .
但是,我第一次订阅时也会执行回调 . 就是这样:
-
输入onNgInit()
-
执行select()
-
执行订阅()
-
执行我的回调
-
-------后来换柜时:-------
-
执行我的回调
我的问题是我不希望我的回调在第4步执行,因为商店没有改变!
我的理解是否存在问题?是应该这样工作?如果是:我可以做一些改变吗?
谢谢
1 回答
不幸的是,这是
.subscribe()
的标准行为 . 您唯一能做的就是将当前的counter
值与新值进行比较,并且只有在发生变化时才对其作出反应 .