我正在尝试使用物质形式将字符串值推送到 formArray 中,但它返回此错误:
Argument of type 'string' is not assignable to parameter of type 'AbstractControl'.
如果我尝试将一个完整的对象插入数组,它可以正常工作,但作为字符串值则不行。这是我声明 formArray 的地方:
this.maintenanceFormGroup = this._formBuilder.group({
title: '',
description: ['', Validators.required],
maintenance_images_url: this._formBuilder.array([]),
});
这是我尝试将字符串值插入数组的地方:
const pushDownloadUrlIntoMaintenancePhotosArray = flatMap(() => {
return this._storage.downloadURL
.map(url => {
console.log(url)
const controls = <FormArray>this.formGroup.controls.maintenance_images_url;
controls.push(url);
});
});
关于我为什么会收到此错误的任何建议?
最佳答案
你应该初始化你的维护图像 url 格式,例如:
const controls = <FormArray>this.maintenanceFormGroup.controls['maintenance_images_url'];
const urlControl = this.initUrl(url);
controls.push(urlControl);
initUrl(url) {
return this.formBuilder.group({
value: [url],
});
}
更新:
const controls = this.maintenanceFormGroup.get('maintenance_images_url');
if (!controls.value.includes(url)) {
controls.push(this.formBuilder.control(url));
}
关于javascript - 'string' 类型的参数不可分配给 'AbstractControl' 类型的参数。 Angular react 形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51612389/