3
respostas

Erro no formulário

Boa noite,

Depois de adicionar um novo ap-vmessage no formulário, recebi o seguinte erro no console:

SignUpComponent.html:51 ERROR TypeError: Cannot read property 'get' of undefined at Object.eval [as updateDirectives] (SignUpComponent.html:56) at Object.debugUpdateDirectives [as updateDirectives] (core.js:11054) at checkAndUpdateView (core.js:10451) at callViewAction (core.js:10692) at execComponentViewsAction (core.js:10634) at checkAndUpdateView (core.js:10457) at callViewAction (core.js:10692) at execEmbeddedViewsAction (core.js:10655) at checkAndUpdateView (core.js:10452) at callViewAction (core.js:10692)

Este é o trecho do código:

   <ap-vmessage
        text="Username alredy taken"
        *ngIf="singupForm.get('userName').errors?.userNameTaken">
    </ap-vmessage>
    <small 
        *ngIf="signupForm.get('userName').valid" 
        class="text-sucess">User available
    </small>

[...]

<button 
    [disabled]="signupForm.invalid || signupForm.pending" 
    class="btn btn-primary btn-block">Register
</button>
3 respostas

Fala cara tudo bom?

A sua função singupForm.get existe na sua classe desse componente?

Verifique se o seu FormGroup (signupForm) está definido no NgOnInit() conforme o curso:

this.signupForm = this.formBuilder.group({
      email: ['',
        [
          Validators.required,
          Validators.email
        ]
      ],
      fullName: ['',
        [
          Validators.required,
          Validators.minLength(2),
          Validators.maxLength(40)
        ]
      ],
      userName: ['',
        [
          Validators.required,
          lowerCaseValidator, 
          Validators.minLength(2),
          Validators.maxLength(30)
        ],
        this.userNotTakenValidatorService.checkUserNameTaken()
      ],
      password: ['',
        [
          Validators.required,
          Validators.minLength(8),
          Validators.maxLength(18)
        ]
      ]
    });

Cara nao sou expert, mas tenho uma sugestao

o seu form ta tentando buscar o get no entanto ainda nao foi carregado o (group) ou voce bota no "constructor(){}" ou voce usa operador "elvis (?)".

*ngIf="signupForm?.get('userName').valid"