作者:usx7054252 | 来源:互联网 | 2023-02-05 10:09
我在一个有角度的2+应用程序中使用反应式表单,并且需要将主FormGroup传递给多个组件,以便表单的不同部分(例如页眉,页脚等)可以在单独的组件中进行管理,并由这些不同的组件填充.这就是我现在这样做的方式:
我想知道,如果这是一个正确的方法因为我看到这个代码的警告/错误:
错误:ExpressionChangedAfterItHasBeenCheckedError:表达式在检查后发生了变化.上一个值:'true'.当前值:'false'.
在这一行:
有什么建议?谢谢.
1> AJT82..:
正如朱莉娅所说,这是正常行为.
它实际上是@Input
你的组件中导致这一点,而不是线
这在开发模式期间发生.如何解决这个问题,就是在接收组件的组件中手动触发更改检测orderForm
.在使用之后@Input
,您可以ngOnChanges
在其他组件中使用生命周期钩子:
import { ChangeDetectorRef } from '@angular/core';
@Input() orderForm: FormGroup
constructor(private ref: ChangeDetectorRef) { }
ngOnChanges() {
this.ref.detectChanges()
}
在此处查看有关您的错误的更多信息:Expression ___在检查后已更改
另外,作为旁注,您是否真的需要将完整的表单传递给其他组件.通常我们只传递组件将处理的嵌套组,所以像这样:
就像一个旁注!:)