Angular7: NullInjectorError: Нет поставщика для FormGroup - PullRequest
0 голосов
/ 06 мая 2019

Я очень расстроен, потому что понятия не имею, что происходит. Все работало правильно сегодня утром, перед некоторыми изменениями, которые я сделал, чтобы объединить 2 формы в ReactiveForm, и теперь я получаю следующую ошибку в браузере:

Ошибка: StaticInjectorError (AppModule) [FormGroup]:
StaticInjectorError (Платформа: ядро) [FormGroup]: NullInjectorError: Нет поставщика для FormGroup! Ошибка: StaticInjectorError (AppModule) [FormGroup]:
StaticInjectorError (Платформа: ядро) [FormGroup]: NullInjectorError: Нет поставщика для FormGroup!

Я импортирую FormsModule и ReactiveFormsModule в мой app.module.ts файл:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
[...]
@NgModule({
  declarations: [
    AppComponent,
    CustomersComponent,
    HeaderComponent,
    CustomersListComponent,
    CustomerEditComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    FormsModule,
    ReactiveFormsModule,
    ...
    HttpClientModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

А затем FormGroup в моем компоненте:

import { FormGroup, FormControl, Validators } from '@angular/forms';
[...]

И объявить новую FormGroup впоследствии в компоненте. Я попытался переустановить пакет @angular/forms с помощью npm, но я все еще получаю сообщение об ошибке ... Я видел несколько похожих вопросов, но, насколько я могу судить, это было связано со средой тестирования. Если у вас есть идеи, заранее спасибо.

1 Ответ

0 голосов
/ 06 мая 2019

Я бы посмотрел твой файл, где строится форма. Но, похоже, вы используете Reactive Forms и не импортировали все необходимое. ReactiveForms требует не только:

 import { FormGroup, FormControl, Validators } from '@angular/forms';

но также обязательно импортируйте «FormBuilder» в том же операторе импорта:

import { FormBuilder, FormGroup, FormControl, Validators } from '@angular/forms';

также, в вашем конструкторе должно быть следующее:

constructor(private fb: FormBuilder) {} 

и в форме должен быть создатель формы, создающий экземпляр формы:

productForm = this.fb.group({})

Если это не решит проблему, мне нужно узнать больше, чтобы помочь.

...