我有一个FormArray
,其中包含一些价格调整规则。每个规则将包含一个FormGroup
,每个FormGroup
包含4个FormControl
。当我尝试将FormGroup
推入FormArray
时,出现此错误:
"FormGroup"类型的参数不能赋给"never"类型的参数。
public rules = new FormArray([]);
private getRuleFormGroup(): FormGroup {
return this._formBuilder.group({
from: new FormControl('', {
nonNullable: true,
validators: [Validators.required]
}),
to: new FormControl('', {
nonNullable: true,
validators: [Validators.required]
}),
increaseBy: new FormControl('', {
nonNullable: true,
validators: [Validators.required]
}),
increaseType: new FormControl('', {
nonNullable: true,
validators: [Validators.required]
})
});
}
private addNewRule(): void {
const group = this.getRuleFormGroup();
this.rules.push(group); //Getting error here
}
2条答案
按热度按时间uurv41yg1#
尝试:
就像FormGroup将自己组织成控件一样,FormArrays也是如此,每个控件要么是一个FormGroup,要么是一个松散的FormControl。
rqqzpn5f2#
您会得到上述错误,因为React形式是严格的类型默认从角14。
要解决编译器错误:
1.为
FormGroup
创建类型。1.将
rules
类型指定为FormArray<FormGroup<RuleForm>>
。1.修改
getRuleFormGroup
签名以返回FormGroup<RuleForm>
的类型。