NgRedux + Angular + 选择在订阅时触发

问题描述 投票:0回答:2

我在我的 Angular 应用程序中使用 redux 已经好几个星期了,但我刚刚注意到了一些关于它的事情:

当我选择商店的一部分来监控变化时,可以这样说:

在app.component.ts的ngOnInit()中

this.ngRedux.select(s => s.counter).subscribe((counter: number) => {
    console.log(counter)
});

每次我的计数器值发生变化时都会执行 console.log(counter) ,没关系,这就是它应该如何工作的。

但是,回调也会在我第一次订阅时执行。 所以就这样了:

  1. 输入onNgInit()
  2. 执行select()
  3. 执行 Subscribe()
  4. 执行我的回调
  5. -----稍后计数器更改时:--------
  6. 执行我的回调

我的问题是我不希望我的回调在第4步执行,因为商店没有改变!

我的理解有问题吗?是应该这样工作吗?如果是:我可以做些什么来改变它吗?

谢谢

angular typescript redux ngredux
2个回答
2
投票

不幸的是,这是

.subscribe()
的标准行为。您唯一能做的就是将
counter
的当前值与新值进行比较,并且仅在发生变化时才做出反应。


0
投票

使用一些 rxjs 过滤器来跳过不需要的值。

© www.soinside.com 2019 - 2024. All rights reserved.