Flutter Streambuilder 正在复制项目

Posted

技术标签:

【中文标题】Flutter Streambuilder 正在复制项目【英文标题】:Flutter Streambuilder is duplicating items 【发布时间】:2021-04-09 01:10:12 【问题描述】:

我有一个 StreamBuilder 连接到一个列表,并且该列表从 Firebase 获取其数据,但是我的数据库中的每个事件都会重复我的 Streambuilder 中的项目。

这是我的 StreamBuilder 代码:

StreamBuilder(
                  stream: masterListStart().asStream(),
                  builder: (context, snapshot) 
                    //return coursesList.length == 0
                    return finishedLoadingList
                        ? ListView.builder(
                            scrollDirection: Axis.horizontal,
                            shrinkWrap: true,
                            itemCount: storysList.length,
                            itemBuilder: (context, index) 
                              //
                              StoryItems data = storysList[index];
                              //
                              return StoryItems(
                                data: data,
                              );
                            ,
                          )
                        : CircularProgressIndicator();
                  ,
                ),

如何防止 StreamBuilder 这样做?

【问题讨论】:

finishedLoadingList 变量在哪里? 检索完成后在我的setState中。数据会显示,但会在数据库更改时自行复制 【参考方案1】:

除了使用finishedLoadingList,您可以简单地检查您的快照连接状态,如下所示

StreamBuilder(
  stream: masterListStart().asStream(),
  builder: (context, snapshot) 
    //return coursesList.length == 0
    return (ConnectionState.done == snapshot.connectionState) ? ListView.builder(
      scrollDirection: Axis.horizontal,
      shrinkWrap: true,
      itemCount: storysList.length,
      itemBuilder: (context, index) 
        //
        StoryItems data = storysList[index];
        //
        return StoryItems(
          data: data,
        );
      ,
    ) : CircularProgressIndicator();
  ,
),

【讨论】:

先生,您是最棒的,非常感谢您,它工作得很好。最好的问候 很高兴它有帮助!快乐编码 谢谢你,先生,你来 您好,我再次启动了代码,但问题再次发生我尝试重建所有内容并卸载应用程序检查代码等,但看起来它又发生了。还有其他解决方案吗? 谢谢。顺便说一句,很抱歉让你再次帮助我,然后我自己解决了,这并不是要浪费你的时间。

以上是关于Flutter Streambuilder 正在复制项目的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:Streambuilder - 关闭流

无法从 StreamBuilder (Flutter) 查询子集合

(Flutter) StreamBuilder 只返回 null

如何在 Flutter Web 上使用 StreamBuilder 和 Firestore?

在页面 flutter,streambuilder,listview 之间导航时列表视图位置丢失

如何在flutter中从streambuilder导航到其他页面?