我有一个带有这 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 的功能。
谢谢
信号仅在值更改时触发,因此您根本不需要此检查。
效果也只有当其内部的信号发生变化时才会触发。
因此,当效果触发时,您可以确定信号内部的实际值已发生变化。
这对于所有原始类型都是如此(
number
、boolean
等)。对于像 array
或 object
这样的引用类型,我们可以在不触发信号的情况下更新内部值,因此我们在这里需要小心,但查看提供的信号,情况并非如此。