我在一个有状态的小部件中有一个streamBuilder,它从服务器异步获取数据,此外,我还有一个收集这些数据的列表。
StreamBuilder(
stream: myStream.stream,
initialData: initData,
builder: (BuildContext context, AsyncSnapshot snapshot) {
switch(snapshot.connectionState){
case (Connection.active):
setState(() {
data = data + snapshot.data;
});
break;
default:
break;
}
}
)
如果我这样做,我得到setState() or markNeedBuild() was called during build
。
我该如何解决这个问题?
1条答案
按热度按时间kqqjbcuj1#
Flutter StreamBuilder不需要调用setState来重建它的孩子。StreamBuilder默认在流上检测到更改时重建。如果不需要在StreamBuilder中重建Widget,您可以考虑初始化流listener,并在流上检测到更改时追加新数据。