No value accessor for form control No value accessor for form control angular angular

No value accessor for form control


You are adding the formControlName to the label and not the input.

You have this:

<div >  <div class="input-field col s12">    <input id="email" type="email">     <label class="center-align" for="email" formControlName="email">Email</label>  </div></div>

Try using this:

<div >  <div class="input-field col s12">    <input id="email" type="email" formControlName="email">     <label class="center-align" for="email">Email</label>  </div></div>

Update the other input fields as well.


For UnitTest angular 2 with angular material you have to add MatSelectModule module in imports section.

import { MatSelectModule } from '@angular/material';beforeEach(async(() => {    TestBed.configureTestingModule({      declarations: [ CreateUserComponent ],      imports : [ReactiveFormsModule,                MatSelectModule,        MatAutocompleteModule,......      ],      providers: [.........]    })    .compileComponents();  }));


For anyone experiencing this in angular 9+

This issue can also be experienced if you do not declare your component or import the module that declares the component.

Lets consider a situation where you intend to use ng-select but you forget to import it Angular will throw the error 'No value accessor...'

I have reproduced this error in the Below stackblitz demo.