我在react-native中有一些无限分页。 每次用户到达页面末尾时,新数据便开始从服务器获取。
应随请求一起发送一些参数,以获取正确的数据。
const data = { limit, offset };
limit
变量确定需要加载多少个项目。
offset
表示需要从数据库中的哪一点进行查询
所以简单地说就是页面的外观
第1页:
const limit = 10; // get 10 items
const offset = 0; // start point
第2页:
const limit = 20; // get 20 items
const offset = 10;
第3页:
const limit = 30; // get 30 items
const offset = 30;
第4页:
const limit = 40; // get 40 items
const offset = 60;
第5页:
const limit = 50; // get 50 items
const offset = 100;
,依此类推。
,这就是我现在的代码中看起来不正确的结果的样子。
const initialValue = 10;
const limit = initialValue * config.page;
const offset = initialValue * (config.page - 1);
达到预期结果的最佳方法是什么?
答案 0 :(得分:1)
您尚未描述所得到的“错误结果”,但这看起来像是一个非常简单的错误。
您提到:
limit
变量确定需要加载多少个项目。
这是一种常见的方法。 limit
基本上是页面大小,表示“给我X个项目”。通常,limit
将保持不变,仅计算offset
。但是,您的代码会不断增加限制:
const limit = 10; // get 10 items
...
const limit = 20; // get 20 items
...
const limit = 30; // get 30 items
...
const limit = 40; // get 40 items
...
const limit = 50; // get 50 items
这基本上是在说:“我已经滚动了10个项目,现在获得了下一个20。我已经滚动了这些项目,又获得了30、40、50个” –这不是常见的分页方法。
尝试将限制保持在10
,仅更改偏移量。在这种方法中,您的代码将(伪)说“给我offset
之后的10个项目”,我怀疑这是您的意图。