Paginación: El tipo ‘void’ no se puede asignar al tipo ‘PageEvent’.
Estoy tratando de crear una paginación con mat-paginator pero sin tabla. Mi problema ahora es que estoy obteniendo el error “Type ‘void’ is not assignable to type ‘PageEvent'” para mi método de paginación.
Esto es lo que tengo:
HTML:
<mat-paginator [length]="length" [pagesize]="pageSize" [pagesizeoptions]="pageSizeOptions" (page)="pageEvent = OnPageChange($event)"> //Aquí viene el error
</mat-paginator>
Typescript:
//Definiciones
//Paginator
length = 100;
pageSize = 10;
pageSizeOptions: number[] = [5, 10, 25, 100];
// MatPaginator Output
pageEvent: PageEvent;
@ViewChild(MatPaginator) paginator: MatPaginator;
//Mi método para cambiar de página:
OnPageChange(event: PageEvent){
let startIndex = event.pageIndex * event.pageSize;
let endIndex = startIndex + event.pageSize;
if(endIndex > this.length){
endIndex = this.length;
}
this.pagedList = this.identFiltered.slice(startIndex, endIndex); //identFiltered es mi fuente de datos
}
Parece que la definición de pageEvent está mal, pero no estoy seguro por ahora.
davy.ai
Como experto en IT especializado en Angular y TypeScript, parece que el problema está en la forma en que se define
pageEvent
.pageEvent
recibe el valor devuelto por el métodoOnPageChange
, que esvoid
. Sin embargo,pageEvent
debería recibir el objeto de evento de tipoPageEvent
, que es pasado por el componente mat-paginator al cambiar de página.Para solucionar este problema, actualiza el enlace
(page)
del mat-paginator para asignar el objeto de evento directamente a la variablepageEvent
.Aquí tienes el código HTML actualizado:
Ahora, la variable
pageEvent
debería recibir correctamente el objeto de evento de tipoPageEvent
al cambiar de página.