1

我不知道为什么在我将页面从 1 更改为 2 后 bookParams 中的 pageNumber 会自动重置为 1。

export class BookListComponent implements OnInit {
  books: Book[];
  bookParams: BookParams;
  pagination: Pagination;
  constructor(private bookService: BookService, private accountService: AccountService) {
    accountService.currentUser$.pipe(take(1)).subscribe(user => {
      this.bookParams = new BookParams(user);
      console.log("contructor " + this.bookParams.pageNumber);
    })
  }

  ngOnInit(): void {
    let a = this.bookParams;
    this.loadBooks();
  }

  loadBooks() {
    console.log("loadBooks" + this.bookParams.pageNumber);
    this.bookService.getBooks(this.bookParams).subscribe(response => {
        this.books = response.result;
        this.pagination = response.pagination;
        this.pagination.currentPage = 1;
    })
  }
  pageChanged(event: any) {
    console.log("PageChange "+event.page);
    this.bookParams.pageNumber = event.page;
    this.loadBooks();
  }
}

BookParams.ts

export class BookParams {
    pageSize = 8;
    pageNumber = 1;
}

在此处输入图像描述

点击更改页面后的图片

在此处输入图像描述

4

1 回答 1

1

您的pageChanged函数调用您的loadBooks函数,该函数又具有以下行:

this.pagination.currentPage = 1;

因此,它将在每次页面更改后指向第一页(假设更改页面调用该pageChanged函数 - 我们没有足够的信息来了解您发布的内容。

于 2021-04-15T13:18:36.240 回答