1
resposta

Property subscribe does not exist on type void

O Visual Code está grifando 'subscribe' e dando a mensagem: "Property subscribe does not exist on type void" e o navegador acusa o seguinte erro:

:3000/node_modules/@angular/core/bundles/core.umd.js:3462 EXCEPTION: Error in http://localhost:3000/app/listagem/listagem.component.html:25:53 caused by: Cannot read property 'subscribe' of undefined
import { Component } from '@angular/core';
import { FotoService } from '../foto/foto.service';
import { FotoComponent } from '../foto/foto.component';

@Component({
    moduleId: module.id,
    selector: 'listagem',
    templateUrl: './listagem.component.html'
})
export class ListagemComponent {

    fotos: FotoComponent[] = [];
    service: FotoService;

    constructor(service: FotoService) {

        this.service = service;
        this.service
            .lista()
            .subscribe(fotos => {
                this.fotos = fotos;
            }, erro => console.log(erro));

    }

    remove(foto) {

        this.service
            .remove(foto)
            .subscribe(
                () => {

                    console.log('Foto removida com sucesso');
                    let novasFotos = this.fotos.slice(0);
                    let indice = novasFotos.indexOf(foto);
                    novasFotos.splice(indice, 1);
                    this.fotos = novasFotos;
                }, 
                erro => console.log(erro)
            );

    }
 }
1 resposta

Seu método remove da sua classe de serviço não retorna nada (void). Por isso você não pode usar subscribe. Parece que você esqueceu a cláusula return.