我有一个带有布尔变量的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。 –