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();
},
),
我有一个 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();
},
),