Mam problem z ngOnChange
. Mam następujący komponent:Jak radzić sobie z wejściami asynchronicznymi w komponentach?
@Component({
selector:'user-table',
template: `...`,
})
export class UserTable implements OnChanges{
@Input() users: User[];
years:string[];
constructor(private _usersCollection:UsersCollection){
}
ngOnChanges(){
if (this.users.length)
{this.years =this._usersCollection.createYearsArray(this.users)}
}
}
Jednakże, jeśli warunek zostanie sprawdzone tylko raz - gdy this.users
nie jest jeszcze pobierany z serwera, a tym samym jego długość wynosi 0. W jaki sposób mogę znaleźć rozwiązanie do czynienia z tego rodzaju async wejścia?
Tablica jest aktualizowany, a kiedy ustawić następujące dzienniki:
console.log('ON FIRST INIT' , this.programs);
this.years = this._usersCollection.createYearsArray();
console.log(this.years);
setInterval(()=>{
console.log('IN INTERVVAL' , this.programs);
},1000);
Wyjście konsola jest:
ON FIRST INIT []
UsersTable.component.ts:21 []
UsersTable.component.ts:23 IN INTERVVAL [Object, Object, Object, Object]
Trudno zobaczyć z tego kodu, co się dzieje. Gdzie pobierasz dane. W jaki sposób są przekazywane do komponentu 'UserTable'? –
Jestem w samochodzie - zaktualizuję q w 30 ':) – uksz