这与我之前的query有关。
我可以使用以下查询从ActiveRecord获取一批记录:
Client.offset(15 * iteration).first(15)
我遇到了一个问题,用户需要输入新记录。
说有100条记录,且批次为15。 前6次迭代(90条记录)和最后一次迭代(10条记录)有效。但是,如果有一个新条目(总共有101条记录),该程序将失败,因为它会:
a)如果将迭代计数器设置为递增,它将查询超出101范围的记录,从而不会返回任何内容。
b)如果将迭代计数器修改为仅在完成一整批15个项目时才递增,则重复最后14个项目和1个新项目。
如何获取新发布的记录?
飞镖代码:
_getData() async {
if (!isPerformingRequest) {
setState(() {
isPerformingRequest = true;
});
//_var represents the iteration counter - 0, 1, 2 ...
//fh is a helper method returning records in List<String>
List<String> newEntries = await fh.feed(_var);
//Count number of returned records.
newEntries.forEach((i) => _count++);
if (newEntries.isEmpty) {
..
}
} else {
//if number of records is 10, increment _var to go to the next batch of 10.
if(_count == 10) {
_var++;
_count = 0;
}
//but if count is not 10, stay with the same batch (but previously counted/display records will be shown again)
}
setState(() {
items.addAll(newEntries);
isPerformingRequest = false;
});
}
}