【问题标题】:update list by new orderby string flutter firestore list通过新的 orderby 字符串更新列表 flutter firestore 列表
【发布时间】:2021-09-14 23:54:12
【问题描述】:

我想在任何类型的架构中单击带有分页的按钮来更新列表的 orderby 尝试了 setstate 字符串,但没有按新顺序重新加载列表。

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,
          ),
        ],
      ),
    );
  }
}

【问题讨论】:

  • 你能把代码贴在你做setState的地方吗?
  • 请结帐
  • 字符串?查询 = 'id';使这个类的局部变量,而不是全局变量。在此类“_ModelState”中初始化变量
  • 好的,但是列表没有更新

标签: list flutter google-cloud-firestore


【解决方案1】:

PaginateFirestore 添加一个键,这将触发PaginateFirestore 小部件的重绘。

PaginateFirestore(
key: ValueKey(query) // For Example
...
)

您可以阅读更多关于键的信息here

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-03-26
  • 2016-04-06
  • 2015-11-07
  • 2021-02-24
  • 2022-01-24
  • 2019-07-19
  • 2020-04-15
  • 1970-01-01
相关资源
最近更新 更多