No dejes de divulgar nuestros post y códigos con tus amigos, necesitamos tu ayuda para ampliar nuestra comunidad.
Solución:
El problema es que la siguiente pieza de código
ngAfterViewInit()
this.dataSource.sort = this.sort;
Sucede antes de que realmente tengas tu mesa en suscripción aquí:
ngOnInit()
this._feedbackService.getFeedback.subscribe(
res =>
this.feedbacks = res;
this.dataSource = new MatTableDataSource(this.feedbacks);
);
Como posible solución, podría sincronizar ngAfterViewInit
llamar y getFeedback
suscripción vía Observable.zip
. Consulte la documentación zip de RxJS
La solución simple para esto es, en lugar de declarar la clasificación en ngAfterViewInit, declarar después de obtener el resultado de “this._feedbackService.getFeedback.subscribe”.
La solución es la siguiente.
ngOnInit()
this._feedbackService.getFeedback.subscribe(
res =>
this.feedbacks = res;
this.dataSource = new MatTableDataSource(this.feedbacks);
this.dataSource.sort = this.sort; //this will solve your problem
);
El anterior funciona perfectamente para mí.
Gracias,
Asegúrate de haber agregado static: false
cuando obtienes datos de la API
@ViewChild(MatSort, static: false) sort: MatSort;
Te mostramos comentarios y calificaciones
Si para ti ha sido de provecho este artículo, te agradeceríamos que lo compartas con el resto entusiastas de la programación así nos ayudas a extender nuestra información.