ExpressionChangedAfterItHasBeenCheckedError Angular *ngIf 指令导致错误

ExpressionChangedAfterItHasBeenCheckedError Angular *ngIf directive couses error

当我点击一个应该切换组件的按钮时,我得到了问题标题中提到的错误。

这是 stackblitz 示例 https://stackblitz.com/edit/ionic-v4-fbgbgf

我通过使用以下方法访问描述 FormGroupisFreeType 值解决了这个问题:

description.get("isFreeType").value

而不是

description.value.isFreeType

此外,您用来设置isFreeType FormControl 值的方法是错误的;在访问 value 属性 后,你不能做 description.value.isFreeType.setValue,你不再操纵 AbstractControl,只是一个普通值。

请参阅 this blitz

中的工作演示