我要使用changeDetection: ChangeDetectionStrategy.OnPush
。
我的问题是为Input
更改选择哪种方法?
private _someVariable: number;
@Input() set someVariable(i) {
this._someVariable = i;
// something to do
}
get someVariable() {
return this._someVariable;
}
有很多样板,可能在其他变量之前设置了一些变量,这可能会导致问题。
我认为Angular Material
团队经常使用这种方法。
ngOnChanges(e) {
if (e.someVariable && !e.someVariable.firstChange) {
this.someVariable = e.someVariable.currentValue;
// something to do
}
}
我认为这是为它设计的,但是firstChange
存在问题,您必须检查一下,而且有时我会遇到ExpressionChangedAfterItHasBeenCheckedError
难以调试的情况。
那个我不知道的循环钩。所以不能写任何东西。
哪种方法最适合处理输入更改?