1
resposta

Problema na validação personalizado de usuário

Pessoal eu segui o passo a passo do professor e meu código esta igual ao da aula mas estou com o seguinte erro:

core.js:4352 ERROR TypeError: Cannot read properties of undefined (reading 'pipe')
    at usuario-existe.service.ts:14
    at forms.js:1159
    at Array.map (<anonymous>)
    at executeValidators (forms.js:1159)
    at FormControl._composedAsyncValidatorFn (forms.js:1134)
    at FormControl._runAsyncValidator (forms.js:3026)
    at FormControl.updateValueAndValidity (forms.js:3000)
    at new FormControl (forms.js:3357)
    at FormBuilder.control (forms.js:6698)
    at FormBuilder._createControl (forms.js:6736)

E também esse erro:

core.js:4352 ERROR Error: formGroup expects a FormGroup instance. Please pass one in.

       Example:


    <div [formGroup]="myGroup">
      <input formControlName="firstName">
    </div>

    In your class:

    this.myGroup = new FormGroup({
       firstName: new FormControl()
    });
    at Function.missingFormException (forms.js:1669)
    at FormGroupDirective._checkFormPresent (forms.js:5599)
    at FormGroupDirective.ngOnChanges (forms.js:5421)
    at FormGroupDirective.rememberChangeHistoryAndInvokeOnChangesHook (core.js:2197)
    at callHook (core.js:3109)
    at callHooks (core.js:3075)
    at executeInitAndCheckHooks (core.js:3027)
    at selectIndexInternal (core.js:6264)
    at Module.ɵɵadvance (core.js:6246)
    at NovoUsuarioComponent_Template (novo-usuario.component.html:17)

Todo o exercício efetuado até agora está disponível no repositório: https://github.com/ronaldofas/gatitobook_problema_aula

As validações anteriores que estavam funcionando não funcionam mais, o que pode ser?

1 resposta

no primeiro erro...

faltou algum parênteses a fechar a função pipe ou importar a função no arquivo usuario-existe.service

no segundo erro...

faltou declarar a variável no novo-usuario.component.ts seguindo o trecho que eu fiz...

<form class="form mt-4" [formGroup]="novoUsuarioForm" (submit)="cadastrar()">
    <div class="form-group">

esse novoUsuarioForm que eu fiz durante a aula, é onde eu vou declarar no typeScript e em seguida eu passo as validações que cada input do HTML vai ter os erros de validações através do formControlName validado em cada input

  novoUsuarioForm!: FormGroup;

  constructor() { }

  ngOnInit(): void {
    this.novoUsuarioForm = this.formBuilder.group({
      email: ['', [Validators.required, Validators.email]],
      .....

Aqui no typescript é onde eu declaro acima a variável novoUsuarioform que ele é do FormGroup que aí sim você passa as validações o que pode conter número de caracteres no mínimo, validação de email e etc.