Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

ERROR TypeError: Cannot read properties of undefined (reading 'pipe')

*Obs: Repostando aqui no Fórum do curso pois eu tinha postado no Fórum geral, desculpe!! *

Executei o projeto e me deparei com o seguinte erros:

ERROR TypeError: Cannot read properties of undefined (reading 'pipe')
ERROR Error: formGroup expects a FormGroup instance. Please pass one in.

Acredito que tenha algum erro no código a baixo, pois quando eu removo: [this.usuarioExistenteService.usuarioJaExiste()] do novo-usuario.componente.ts o código funciona normalmente:

import { Injectable } from '@angular/core';
import { AbstractControl } from '@angular/forms';
import { NovoUsuarioService } from './novo-usuario.service';
import { first, map, switchMap } from 'rxjs/operators';

@Injectable({
  providedIn: 'root',
})
export class UsuarioExisteService {
  constructor(private _novoUsuarioService: NovoUsuarioService) {}

  usuarioJaExiste() {
    return (control: AbstractControl) => {
      return control.valueChanges.pipe(
        switchMap(
          (nomeUsuario) => this._novoUsuarioService.verificaUsuarioExistente(nomeUsuario)
        ),
        map((usuarioExiste) =>
          usuarioExiste ? { usuarioExistente: true } : null
        ),
        first()
      );
    };
  }
}

Eu já revisei e comparei varias vezes o código do professor com o meu porem ainda não consegui a solução.

3 respostas
solução!

Para quem estiver recebendo o mesmo erro, conferi todo o código, baixei o projeto da aula substitui o código pelo do professor e mesmo assim não funcionava, executei o dele e funcionava, observei que o package.json dele estava com versões diferentes do meu, mesmo seguindo as instruções de versionamento do inicio do curso, então copiei todo o arquivo package.json assim como package-lock.json, angular.json, para o meu projeto e dei npm install depois tudo funcionou normalmente.

Obrigado pelo o retorno!

Arthur,

Para mim também funcionou a tua solução, porém eu só alterei o package.json e package-lock.json.