ionic4 - 如何解决 ion-infinite-scroll ionic 4 中的重复页面
问题描述
我正在使用 ionic 4,并且正在使用 ion-infinite-scroll 进行分页。我的问题是我总是遇到重复页面问题。我能知道如何解决这个重复的问题吗?这是我在 home.page.ts 中的代码:
doInfinite(event) {
this.userService.getData().then(res => {
event.target.complete();
});
}
loadData(event) {
console.log('Load more data');
this.userService.getData().then(res => {
event.target.complete();
});
}
这是 home.html
<ion-infinite-scroll (ionInfinite)="loadData($event)">
<ion-infinite-scroll-content
loadingSpinner="bubbles"
loadingText="loading ...">
</ion-infinite-scroll-content>
</ion-infinite-scroll>
解决方案
这取决于你的userService.getData()
样子。
看起来您并没有告诉它从偏移量开始。
每次下拉数据时,都应该将该列表数据分配给一些本地页面变量,比如dataList
.
然后this.dataList.length
用作下一个数据请求的起始索引。
所以一些关于这可能如何工作的伪代码是:
let dataFeed = [];
let startAtRecord = 0;
constructor() {
this.userService.getData(startAtRecord).then(res => {
this.dataFeed = res;
this.startAtRecord = this.dataService.length;
});
}
loadData(event) {
// ask for a batch of records, starting at `startAtRecord`
this.userService.getData(startAtRecord).then(res => {
// add the new res data to the existing dataFeed
this.dataFeed = [...this.dataFeed, ...res];
// keep track of the number of records loaded
this.startAtRecord = this.dataService.length;
event.target.complete();
});
}
你明白我在说什么吗?数据服务必须加载下一页数据,这样您就不会得到相同的数据,因此它需要跟踪它从哪里开始列表。
推荐阅读
- react-hooks - React/Nextjs 上下文提供程序状态在第一次加载/刷新时无法访问,但在状态更改时工作正常
- ios - 授予设备权限后,地图图钉未显示在 MapKit 中
- android - Xamarin Forms Prism:prism ResourceDictionary 中已存在具有键“Xamarin.Forms.NavigationPage”的资源
- javascript - 为什么 setTimeout 和 setInterval 在浏览器和 Node.js 中的工作方式不同?
- c++ - Windows10 ld.exe 上的 GCC、GTK:找不到 -ldwmapi
- python - 无法在 Python 中输入(file.xml)
- r - ggplot2条形图中的颜色X轴
- bash - Bash 在键后获取单词
- python-3.x - Python shelve get() 和 keys() 方法返回不一致的结果
- html - 如何让我的联系表格电子邮件正常工作并显示信息?