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

Erro durante a mudança do ngOnChanges

Durante a aula quando o professor Flavio faz a alteração do ngOninit para o NgOnChanges tive um problema com o meu CMD dando o seguinte erro durante a compilação do meu código.

A seguinte mensagem é :

"ERROR in src/app/photos/photo-list/photos/photos.component.ts(19,4): error TS2322: Type 'void' is not assignable to type 'any[]'."

O código está em meu GitHub também! : https://github.com/Bicalheira/Estudos-Alura/tree/master/Angular

O meu photo.component.ts está desse jeito:

import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';
import { Photo } from '../../photo/photo';

@Component({
    selector: 'ap-photos',
    templateUrl: './photos.component.html',
    styleUrls: ['./photos.component.css']
})
export class PhotosComponent implements OnChanges {

    @Input() photos: Photo[] = [];

    rows: any[] = [];

    constructor() { }

    ngOnChanges(changes: SimpleChanges) {
        if (changes.photos) {
            this.rows = this.groupColumns(this.photos);
        }
    }

    groupColumns(photos: Photo[]) {
        const newRows = [];

        for (let index = 0; index < photos.length; index += 3) {
            newRows.push(photos.slice(index, index + 3));
        }

    }

}
3 respostas
solução!

Boa tarde, Lucas! Como vai?

O problema é que vc esqueceu de retornar do método groupColumns o array com as novas linhas. Segue o código correto.

groupColumns(photos: Photo[]) {
        const newRows = [];

        for(let index = 0; index < photos.length; index+=3) {
            newRows.push(photos.slice(index, index + 3));
        }
        return newRows; // Faltou essa linha.
}

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Nossa professor, Obrigado! Boiei feio! Agradeço a atenção!

Por nada, Lucas! Sempre que precisar de alguma ajuda é só mandar aqui no fórum da Alura!

Grande abraço e bons estudos, meu aluno!