分页 - 类型 'void' 不可分配给类型 'PageEvent'

Pagination - Type 'void' is not assignable to type 'PageEvent'

我正在尝试使用 mat 分页器创建分页,但没有 table。我现在的问题是,对于我的分页方法,我收到错误类型 'void' 无法分配给类型 'PageEvent'。

这就是我得到的:

HTML:

<mat-paginator 
  [length]="length"
  [pageSize]="pageSize"
  [pageSizeOptions]="pageSizeOptions"
  (page)="pageEvent = OnPageChange($event)"> //Here comes the error
</mat-paginator>

打字稿:

//Definitions
//Paginator
length = 100;
pageSize = 10;
pageSizeOptions: number[] = [5, 10, 25, 100];
// MatPaginator Output
pageEvent: PageEvent;
@ViewChild(MatPaginator) paginator: MatPaginator;

//My Method for change pages:
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 is my Datasource
}

好像是pageEvent的定义有误,暂时还不确定

所以让我们看一下引发错误的行:

(page)="pageEvent = OnPageChange($event)"

该代码表示​​每当 page 输出发出事件时,将 OnPageChange($event) 的 return 值分配给 pageEvent 变量。

您遇到的问题是您的函数 OnPageChange($event: PageEvent) 没有 return 任何东西。因此,您的函数没有 return 值,这就是它的 void.

的原因

解决您的问题 return $event in OnPageChange 所以它 return 是 PageEvent 或者干脆不要尝试将事件分配给pageEvent 在 HTML 中并将其移动到您的函数中。