Ошибка типа: Не удается прочитать свойство ‘forEach’ значения null — при попытке исправить значение

#angular #typescript

Вопрос:

Мне нужно подключить мои данные с сервера к моей группе форм, я использую этот код

 this.fg.controls.treeInfoModel.patchValue({   treeORpolygonID: value.treeInfoModel['treeORpolygonID'] ,  quantityOfTrees: value.treeInfoModel['quantityOfTrees'] ,  treeType: value.treeInfoModel['treeType'] ,   actionReasonID: value.treeInfoModel['actionReasonID'] ,   actionReasonDetails: value.treeInfoModel['actionReasonDetails'] ,  treeDiameter: value.treeInfoModel['treeDiameter'] ,  treeDiameter2: value.treeInfoModel['treeDiameter2'],  treeDiameter3: value.treeInfoModel['treeDiameter3'] ,  treeHigh: value.treeInfoModel['treeHigh'] ,  treeCanopy: value.treeInfoModel['treeCanopy'],  treeHealth: value.treeInfoModel['treeHealth'] ,  treeLocation: value.treeInfoModel['treeLocation'] ,  treeTypeValue: value.treeInfoModel['treeTypeValue'] ,    rootProtectedArea: value.treeInfoModel['rootProtectedArea'] ,  treeValue: value.treeInfoModel['treeValue'] ,  copyFeasibility: value.treeInfoModel['copyFeasibility'] ,   closeUpImgGUID: value.treeInfoModel['closeUpImgGUID'] ,  areaImgGUID: value.treeInfoModel['areaImgGUID']     });  

моя модель построена так:

 export interface FOTreesDetailsModel {  selectedType: number;  //exempSurveyModel?: FOExempSurveyModel | undefined;  foExempSurveyRequestModel?: FOExempSurveyRequestModel | {};  treeInfoModel?: FOTreeInfoModel | {}; }  

`

но я получаю ошибку : ОШИБКА типа Ошибка: Не удается прочитать свойство ‘forEach’ значения null в FormArray.push../node_modules/@angular/forms/fesm5/forms.js.FormArray.patchValue

почему?

Комментарии:

1. Значение patchValue применяется к группе форм или к элементу управления формой. Вы уверены, что у вас есть группа форм «fg» со свойством «treeInfoMode», которая является группой форм при выполнении кода?

2. @Eliseo еще раз спасибо тебе! да, я уверен

3. Ошибка говорит о формаре, но я вижу это в коде. помните, что для использования значения пути в массиве форм, массивы форм должны содержать столько элементов, сколько вы используете в значении пути, например, является ли ваш «actionReasonDetails» массивом форм, «значением. treeInfoModel[‘actionReasonDetails’]» должен быть массивом с таким количеством элементов, чем actionReasonDetails-если вы должны создать this.fg.get('treeInfoModel.actionReasonDetails')=new FormArray(value.treeInfoModel['actionReasonDetails'].map(x=gt;new FormControl(x)) или что-то вроде цикла для добавления элементов управления формой в свой массив форм

4. @Eliseo хорошо, постараюсь, спасибо!!