在使用对象作为 formState 时,需要使用 FormGroup 类型来创建表单,并使用 addControl 方法向表单中添加控件。
下面是一个示例代码:
component.ts 文件:
import { Component } from '@angular/core';
import { FormGroup, FormControl } from '@angular/forms';
@Component({
selector: 'app-form',
templateUrl: './form.component.html',
styleUrls: ['./form.component.scss']
})
export class FormComponent {
form: FormGroup;
constructor() {
this.form = new FormGroup({
name: new FormControl(),
email: new FormControl(),
address: new FormGroup({
street: new FormControl(),
city: new FormControl(),
state: new FormControl()
})
});
}
addControl() {
const newControl = new FormControl();
this.form.get('address').addControl('zip', newControl);
}
}
component.html 文件:
在上述示例中,使用 FormGroup 类型创建表单并向其中添加控件。通过使用 get 方法获取地址控件组并使用 addControl 方法向其中添加 zip 控件。这样就可以解决使用对象作为 formState 时出现的 addControl 方法无效的问题。