Я получаю эту ошибку, когда использую push() для массива в проекте Angular 10 в Typescript.
Ошибка
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]
}));
}
}
Вы не можете использовать построитель форм, пока он не будет инициализирован в конструкторе. Переместите свою логику в метод конструктора:
grantProgramForms : any
constructor(private fb: FormBuilder ) {
this.grantProgramForms = this.fb.array([]);
}
Тогда в вашем методе addGrantProgramForms
вы ссылаетесь на неправильную переменную, я думаю, вы имеете в виду this.grantProgramForms.push
не this.AddGrantProgramForms.push
Не беспокойтесь, это случается. Рад, что теперь работает!
Если нет других проблем, вы можете пометить это как решенное.
Спасибо! Я вызывал метод вместо массива, лол. Глупая ошибка с моей стороны.