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

时间:2018-06-28 08:19:13

标签: angular typescript redux ngredux

我已经在我的角度应用程序中使用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步执行回调,因为存储没有更改!

我的理解存在问题吗?应该像那样工作吗?如果是,我可以做些更改吗?

谢谢

1 个答案:

答案 0 :(得分:1)

不幸的是,这是.subscribe()的标准行为。您唯一可以做的就是将您的counter当前值与新值进行比较,并仅在发生更改时对此做出反应。