设置FormControl的默认值时出现错误,但它返回如下错误:
错误TS2322:类型“ void”不能分配给类型“ AbstractControl”
这是我的.ts文件:
profileForm = new FormGroup({
username : new FormControl().setValue("a"),
firstname : new FormControl().setValue("a"),
lastname : new FormControl().setValue("a"),
email : new FormControl().setValue("a"),
password : new FormControl().setValue("a"),
});
帮我解决这个问题。
答案 0 :(得分:3)
FormControl.setValue()
返回void
-表示不返回任何内容。
您正在有效地尝试创建具有以下签名的对象:
{
username: void,
firstname: void,
...
}
对于构造FormGroup
而言,这既无意义又无效。 FormGroup期望在其构造函数中具有以下签名的对象:
{
[key: string]: FormControl
}
所以更像是:
{
username: new FormControl(),
firstname: new FormControl(),
...
}
如果要以编程方式访问表单控件,可以执行以下操作:
const formControls = {
username: new FormControl('a'),
firstname: new FormControl('a'),
...
};
// or this
formControls.username.setValue('a');
formControls.firstname.setValue('a');
// ... etc
profileForm = new FormGroup({
username: formControls.username,
firstname: formControls.firstname,
...
});
答案 1 :(得分:0)
您可以使用表单构建器:
profileForm: FormGroup;
constructor(private _formBuilder: FormBuilder) {}
ngOnInit() {
this.profileForm = this._formBuilder.group({
username: [{ value: 'a' }],
...
});
}