gpt4 book ai didi

angular - @Input() 更改时更新变量

转载 作者:太空狗 更新时间:2023-10-29 17:29:48 25 4
gpt4 key购买 nike

我有一个 Input 变量,其值在 parentComponent 中被更改。每次更改时,我都需要更新子组件本地名为 currentNumber 的变量。目前我只在 onInit 方法中初始化它,但输入在 childComponent.ts 的生命周期内发生变化

ChildComponent.ts

@Input() input;
...
...
ngOnInit(){
this.currentNumber = this.data.someOtherNumber+this.input.numberIneed;;
}

我知道观察者,但我觉得仅仅为此声明另一项服务是一种矫枉过正。

最佳答案

您可以使用二传手:

private _input: number;
@Input() set input(value: number) {
this._input = value;
this.currentNumber = this.data.someOtherNumber + this.input.numberIneed;
};
get input() { return this._input; }

或 ngOnChanges :

export class ChildComponent implements OnChanges {
// ...
ngOnChanges(changes: { [propName: string]: SimpleChange }) {
if (changes['input'] && changes['input'].currentValue !== changes['input'].previousValue) {
this.currentNumber = this.data.someOtherNumber+this.input.numberIneed;
}
}
}

关于angular - @Input() 更改时更新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47533334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com