Flutter结合AWS Amplify开发时Dart如何调用QueryPagination实现分页查询?
Flutter AWS Amplify DataStore分页调用失败解决方法
核心问题
- 冗余使用
new关键字(Dart 2.0+自动识别构造函数,无需显式声明new) - 未导入
QueryPagination所属的amplify_datastore包 - Amplify版本与官方示例的API不兼容
分步解决
1. 导入正确依赖
// 必须导入该包才能识别QueryPagination import 'package:amplify_datastore/amplify_datastore.dart'; import 'package:amplify_core/amplify_core.dart'; // 导入自定义数据模型(如Post) import 'models/Post.dart';
2. 修正分页调用语法
- Amplify Flutter 1.x版本(匹配旧版官方示例API):
去掉new,明确指定返回类型泛型:List<Post> posts = await Amplify.DataStore.query( Post.classType, pagination: const QueryPagination(page: 0, limit: 100), ); - Amplify Flutter 2.x+版本(API已迭代):
改用新版分页构造函数:// 指定每页返回条数(等价于旧版page=0的前100条) List<Post> posts = await Amplify.DataStore.query( Post.classType, pagination: const QueryPagination.pageSize(100), );
3. 验证依赖版本
检查pubspec.yaml中amplify_datastore的版本号,确保与代码调用的API匹配:
- 若版本≥2.0,必须使用新版分页语法
- 若版本<2.0,可直接用1.x版语法
报错排查
- 提示
QueryPagination未定义:检查是否导入amplify_datastore包 - 提示参数不匹配:核对Amplify版本与对应语法
内容的提问来源于stack exchange,提问作者Abhay
相关产品推荐
相关产品推荐

