Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Angular Input Property

Olá,

tenho esse código onde pego os dados via @Input()

import { Component, OnInit, Input, SimpleChanges } from '@angular/core';

@Component({
  selector: 'app-card-clima',
  templateUrl: './card-clima.component.html',
  styleUrls: ['./card-clima.component.css']
})
export class CardClimaComponent implements OnInit {
  @Input() clima: Object;

  constructor() { }

  ngOnInit() {
    console.log(this.clima);
  }

  ngOnChanges(changes: SimpleChanges){
    if(changes.clima){
      this.clima = changes.clima;
    }

    console.log(this.clima);
  }

}

Pelo que entendi, na hora que ele carrega a View ele inicializa com o construtor e depois o ngOnInit(), certo ? ai nesse momento o @Input() clima ainda não foi carregado ? Minha dúvida é sempre que eu passar dados usando o @Input, é sempre recomenando passar pelo ngOnChanges() ou existe outra solução para isso ?

1 resposta
solução!

Fala ai Dalcy, tudo bem? Se você precisa ouvir as mudanças das propriedades do seu componente, sim, vai precisar usar o ngOnChanges.

Lembrando que caso durante o processo de mudança seu componente seja desmontado e montado novamente, ai o ngOnInit seria o suficiente.

Mas caso ele permanece na página e você queira atualizá-lo também, ai sim, vai precisar do ngOnChanges.

Espero ter ajudado.