list - 通过新的 orderby 字符串更新列表 flutter firestore 列表
问题描述
我想在任何类型的体系结构中通过单击带有分页的按钮来更新列表的 orderby 尝试 setstate 字符串,但不会通过新的 order by 重新加载列表。
String? query = 'id';
class Model extends StatefulWidget {
@override
_ModelState createState() => _ModelState();
}
class _ModelState extends State<Model> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: ListView(
children: <Widget>[
TextButton(
onPressed: () {
setState(() {
query = 'price';
});
},
child: Text('data'),
),
PaginateFirestore(
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemBuilderType: PaginateBuilderType.listView,
itemBuilder: (index, context, documentSnapshot) {
final data = documentSnapshot.data() as Map?;
return MainComponent(title: data == null ? 'Error' : data['id']);
},
// orderBy is compulsory to enable pagination
query:
FirebaseFirestore.instance.collection('phones').orderBy(query.toString()),
// to fetch real-time data
isLive: false,
),
],
),
);
}
}
解决方案
添加一个键PaginateFirestore
,这应该会触发PaginateFirestore
小部件的重绘。
PaginateFirestore(
key: ValueKey(query) // For Example
...
)
您可以在此处阅读有关密钥的更多信息
推荐阅读
- python - pytesseract image_to_pdf_or_hocr 输出pdf和文本
- api - 端点设计的 RESTful API 最佳实践
- python - Win10 上的 Python 比 macOS 上的 Python 慢得多
- shell - 使用 UNIX 附加数据集 (.ds)
- sql - 为 SQL 列中的唯一值生成计数器 ID 的正确方法?
- java - 在 LinearLayout 中获取视图的索引
- javascript - 将数据过滤到完全匹配的 React/JS
- java - 如何在 Java 中使用 thread.sleep 创建序列
- python - 为项目安装依赖项时出错
- python - 如何在 Github API 的搜索查询中使用 OR