【问题标题】:Pagination - Type 'void' is not assignable to type 'PageEvent'分页 - 类型“void”不可分配给类型“PageEvent”
【发布时间】:2022-01-22 17:59:05
【问题描述】:

我正在尝试使用垫子分页器但没有表格创建分页。我现在的问题是我收到错误类型“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的定义是错误的,但我暂时不确定

【问题讨论】:

    标签: angular typescript pagination


    【解决方案1】:

    那么让我们看看抛出错误的那一行:

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

    代码意味着每当page 输出发出事件时,将OnPageChange($event) 的返回值分配给pageEvent 变量。

    您遇到的问题是您的函数OnPageChange($event: PageEvent) 没有返回任何内容。因此,您的函数没有返回值,这就是它的void 的原因。

    要解决您的问题,请在 OnPageChange 中返回 $event,以便它返回 PageEvent,或者干脆不要尝试在 HTML 中将事件分配给 pageEvent 并将其移至您的函数。

    【讨论】:

      猜你喜欢
      • 2018-01-04
      • 2021-09-23
      • 2017-09-21
      • 2019-05-12
      • 2017-12-29
      • 1970-01-01
      • 1970-01-01
      • 2019-05-06
      • 2020-10-01
      相关资源
      最近更新 更多