【问题标题】:Property 'push' does not exist on type '() => void'. How to resolve this error in Typescript Angular 10?类型“() => void”上不存在属性“push”。如何解决 Typescript Angular 10 中的此错误?
【发布时间】:2020-12-14 14:18:36
【问题描述】:

当我在 Typescript 的 Angular 10 项目中的数组上使用 push() 时出现此错误。

错误

Property 'push' does not exist on type '() => void'.ts(2339)

请帮我弄清楚为什么会出现此错误以及如何解决?

export class GrantProgramComponent implements OnInit {
  grantProgramForms : any = this.fb.array([]); 
  constructor(private fb: FormBuilder ) { }

  ngOnInit(): void {
    this.AddGrantProgramForms(); 
  }


  AddGrantProgramForms(){
    this.AddGrantProgramForms.push(this.fb.group({
      Id : [0], 
      ProgramName : [''], 
      ProgramCode : [''], 
      StartDate : [''],
      EndDate : [''], 
      Status : [false]
    })); 
  }

}

【问题讨论】:

    标签: arrays angular typescript angular10


    【解决方案1】:

    在构造函数中初始化表单生成器之前,您不能使用它。将你的逻辑移到构造方法中:

     grantProgramForms : any 
    
     constructor(private fb: FormBuilder ) {
       this.grantProgramForms = this.fb.array([]); 
     }
    

    然后在您的 addGrantProgramForms 方法中,您引用了错误的变量,我认为您的意思是 this.grantProgramForms.push 而不是 this.AddGrantProgramForms.push

    【讨论】:

    • 谢谢!我正在调用该方法而不是数组大声笑。我犯了一个愚蠢的错误。
    • 不用担心,它会发生。很高兴它现在可以工作了!
    • 如果没有其他问题,您可以随意将其标记为已解决
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 2021-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 2018-01-15
    相关资源
    最近更新 更多