我有一個帶有布爾變量的Angular 4組件。初始值取決於輸入流。在哪裏初始化角4組件中的變量 - ExpressionChangedAfterItHasBeenCheckedError
TypeScript要求我聲明變量,如下例所示。沒有它,this.isLoading會觸發錯誤。
在這一點上,我不知道它的價值,所以我只聲明它沒有分配一個變量。
export class SomeComponent implements OnInit {
@Input() someStream$;
isLoading: boolean;
ngOnInit() {
someStream.subscribe((someData) => {
// Code to determine the value for isLoading
this.isLoading = true;
});
}
}
後來當我知道值時,我會將它設置爲true或false。但後來'ExpressionChangedAfterItHasBeenCheckedError'開始。
什麼是設置這些'默認'值的'正確方法'。
嘗試ngOnChages()生命週期而不是ngOnInit(),它可能會解決您的問題。 –
何時何地在someStream上調用next? –
@MohamedGara在同一個onInit塊中是一些檢查URL參數的邏輯。如果所有需要的參數都在那裏,它會啓動一個http調用並設置isLoading。 –