Javascript 未以反应形式设置输出值-angular9

Javascript 未以反应形式设置输出值-angular9,javascript,angular,typescript,angular-reactive-forms,Javascript,Angular,Typescript,Angular Reactive Forms,我有一个表单,在这里我使用from数组: private InitialFrom(): void { this.addElectricMoneyFG = this.fromBuilder.group({ locales: this.fromBuilder.array([]) }) } 我有一个组件,它有这个值的输出: <multi-language-data-form [selectLanguage]="selectLanguage"

我有一个表单,在这里我使用from数组:

private InitialFrom(): void {
  this.addElectricMoneyFG = this.fromBuilder.group({
    locales: this.fromBuilder.array([])
  })
}
我有一个组件,它有这个值的输出:

    <multi-language-data-form
      [selectLanguage]="selectLanguage"
      [fields]="fields"
      sticy="true"
      (formValue)="setValue($event)"
    ></multi-language-data-form>
当我想从该值更新表单时,它不会从
局部变量中设置值:

setValue(value): void {
   this.addElectricMoneyFG.patchValue({ ...value });
 }

有什么问题?如何设置表单中的值???

您不需要在主formBuilder中创建formBuilder,只需执行以下操作:

  private InitialFrom(): void {
    this.addElectricMoneyFG = this.formBuilder.group({
      locales: []
    })
  }
要将值修补到表单,可以从(formValue)事件传递LanguageId,然后使用find获取值,并将所需的值修补到FormGroup

要使用patchValue方法,您需要精确地将表单字段作为传递给patchValue()的对象参数的键。例如,这里是“locales”

  private InitialFrom(): void {
    this.addElectricMoneyFG = this.formBuilder.group({
      locales: []
    })
  }
  setValue(languageId: number): void {
    var getLocale = this.fields.find(x => x.languageId == languageId);
    this.addElectricMoneyFG.patchValue({ locales: getLocale });
  }