Saltar al contenido

mat-sort no funciona en mat-table

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *