1

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

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

在 app.component.ts 的 ngOnInit() 中

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

每次我的计数器值更改时都会执行 console.log(counter),没关系,这就是它假设的工作方式。

但是,当我第一次订阅时,也会执行回调。所以它是这样的:

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

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

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

谢谢

4

1 回答 1

2

不幸的是,这是.subscribe(). 您唯一能做的就是将您的当前值counter与新值进行比较,并且仅在发生更改时才对其做出反应。

于 2018-06-28T10:56:55.583 回答