【发布时间】:2022-01-12 02:05:37
【问题描述】:
构建一个 React Native 应用,我使用 Firebase 作为后端服务。
//最新版本的react-native-firebase
我使用 firestore 和他的工具(startAfter、endBefore 和 limit)为大量数据构建了一个简单的分页。 此分页使用下一个和上一个按钮,一切正常。
问题是无论是否有更多数据要加载,我都想禁用这些按钮。
至于前一个按钮创建一个状态以跟随用户在哪个页面,然后在状态为第1页时禁用按钮应该足够好。 (这可能不是最好的做法,如果您有更好的解决方案,请随时分享)
但是对于下一个按钮,它更难。 我做了一些研究,发现了一些解决方案,比如使用限制数。如果限制小于页面中显示的数据数量,则禁用该按钮。 它有效,但我的问题是如果限制 = 页面中的数据数怎么办?之后不再需要加载数据。
更准确地说,让我们举个例子限制 = 9 / 显示的数字数据 = 7 => 按钮禁用 ✅ 限制 = 9 / 显示的数字数据 = 9 => 按钮仍处于活动状态❌(这 9 个元素是最后一个静止的元素)
我正在考虑将我的调用更改为将限制设置为 10,而不是目前的 9。并且仍然每页只显示 9 个元素(仍然跟踪 lastVisible 道具的第 9 个元素,以便从它而不是从第 10 个元素调用 startAfter)。然后检查这第 10 个元素是否存在以禁用下一个按钮。 但这都是理论,就目前而言,如果不破坏我的 endBefore 和 startAfter 调用太多,我看不到这样做的方法。
我想听听您对此解决方案的看法,也许您能帮助我正确使用它。或者,如果您有其他解决方案来实现我的目标
感谢您的宝贵时间
【问题讨论】:
标签: javascript firebase react-native google-cloud-firestore pagination