Flutter Streambuilder 正在复制项目

Flutter Streambuilder is duplicating items

我有一个 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,您可以简单地检查您的快照连接状态,如下所示

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