3
respostas

03 Compreendendo Observables

Professora o meu listar-pensamento.component.ts não está reconhecendo o metodo Listar do pensamento.service.ts, ja verifiquei muito para ver se deixei alguma coisa mas ja vi o videos várias veses, Pode me ajudar, segue o erro.

Error: src/app/componentes/pensamentos/listar-pensamento/listar-pensamento.component.ts:20:18 - error TS2339: Property 'listar' does not exist on type 'PensamentoService'.

20 this.service.listar()

3 respostas

Olá, Leonardo!

Isso pode acontecer por alguns motivos por diversos motivos, então sem muito contexto não consigo dar um resposta totalmente assertiva. Mas vamos verificar alguns pontos:

  1. Verifique se o método 'listar' está declarado no serviço 'PensamentoService' como mostrado. ​
listar() {
  // código do método
}

​ 2. Verifique se o serviço 'PensamentoService' foi importado corretamente no componente 'listar-pensamento.component.ts'. ​

import { PensamentoService } from 'caminho-para-o-servico/pensamento.service';

​ 3. Verifique se 'PensamentoService' foi injetado corretamente no construtor do componente 'listar-pensamento.component.ts'. ​

constructor(private service: PensamentoService) { }

​ 4. Se o método 'listar' for privado no serviço 'PensamentoService', ele não será acessível do componente. Certifique-se de que o método é público.

No mais, em caso de persistência compartilhe maiores detalhes sobre o seu erro, e em que aula você está atualmente!

Reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!
import { Component, OnInit } from '@angular/core';
import { Pensamento } from "../pensamento";
import { HttpClient } from "@angular/common/http";
import { Observable } from "rxjs";
import { PensamentoService } from "../pensamento/pensamento.service";

@Component({
  selector: 'app-listar-pensamento',
  templateUrl: './listar-pensamento.component.html',
  styleUrls: ['./listar-pensamento.component.css']
})
export class ListarPensamentoComponent implements OnInit {

   listaPensamentos: Pensamento[] = [];

  constructor(private service: PensamentoService) { }

   ngOnInit(): void {
   this.service.listar()   ->>>> é adicionar essa linha que da o erro 
   }

}

Segue codigo pensamento.service,ts para analise.

import { Injectable } from '@angular/core';
import { HttpClient } from "@angular/common/http";
import { Pensamento } from "./pensamento";
import { Observable } from "rxjs";

@Injectable({
  providedIn: 'root'
})
export class PensamentoService {

  private readonly API = 'http://localhost:3000/pensamentos';

  constructor(private http: HttpClient) { }

  listar(): Observable<Pensamento[]> {
    return this.http.get<Pensamento[]>(this.API);
  }

}

Consegui pegar os dados do json ... Luta.. Obrigado