角度信号输入效果

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

我有一个带有这 3 个信号输入的角度组件:


  initialPrice = input<number | undefined>();
  maxValue = input<number>(999999999);
  minValue = input<number>(0);

我想在输入发生变化时触发效果并触发功能:

      effect(() => {
        this.handleNormalizeChange();
        this.updateFormattedCurrentPrice();
        this.updateValidators(this.minValue(), this.maxValue());
      });

问题:如果相关输入发生变化,而不是每次执行效果时都触发所有函数,如何才能只触发 1 个函数?

我基本上想要 ngOnChanges 与 previousValue 和 currentValue 的功能。

谢谢

angular
1个回答
0
投票

信号仅在值更改时触发,因此您根本不需要此检查。

效果也只有当其内部的信号发生变化时才会触发。

因此,当效果触发时,您可以确定信号内部的实际值已发生变化。

这对于所有原始类型都是如此(

number
boolean
等)。对于像
array
object
这样的引用类型,我们可以在不触发信号的情况下更新内部值,因此我们在这里需要小心,但查看提供的信号,情况并非如此。

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