【问题标题】:NgRedux + Angular + select triggered on subscribe订阅时触发 NgRedux + Angular + 选择
【发布时间】:2018-06-28 18:56:55
【问题描述】:

我已经在我的 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. 执行订阅()
  4. 执行我的回调
  5. ------- 稍后当计数器更改时:-------
  6. 执行我的回调

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

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

谢谢

【问题讨论】:

    标签: angular typescript redux ngredux


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答,我想知道这是 .subscribe() 的标准行为还是我做错了什么。我会按照您的建议尝试通过我的 slef 解决这个问题。谢谢
    • 感谢您的澄清。知道文档在哪里提到它吗?
    猜你喜欢
    • 2021-04-24
    • 2016-10-28
    • 2019-09-22
    • 1970-01-01
    • 2021-12-23
    • 2020-03-15
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    相关资源
    最近更新 更多