如何在Flutter StreamBuilder中使用hasData,hasError和ConnectionState处理snapshot.data。

问题描述 投票:0回答:1
我不确定如何处理Flutter StreamBuilder。我发现了3种情况,并且想知道无论哪种原因,哪一种都会比其他的更好。或者,除了这些情况之外,还有其他更好的处理方法。

而且,

ConnectionState.active

ConnectionState.done有什么区别?我是否应该一直使用snapshot.data直到ConnectionState.doneCase 1Case 2)。

案例1:

return StreamBuilder( builder: (context, snapshot) { if (snapshot.hasError) return Text('Error'); switch (snapshot.connectionState) { case ConnectionState.none: case ConnectionState.waiting: return CircularProgressIndicator(); case ConnectionState.active: case ConnectionState.done: return Text('${snapshot.data}'); } return null; }, );

案例2]]

return StreamBuilder( builder: (context, snapshot) { if (snapshot.hasError) return Text('Error'); switch (snapshot.connectionState) { case ConnectionState.none: case ConnectionState.waiting: case ConnectionState.active: return CircularProgressIndicator(); case ConnectionState.done: return Text('${snapshot.data}'); } return null; }, );

案例3:

return StreamBuilder( builder: (context, snapshot) { if (snapshot.hasError) return Text('Error'); if (!snapshot.hasData) return CircularProgressIndicator(); return Text('${snapshot.data}'); }, );
我不确定如何处理Flutter StreamBuilder。我发现了3种情况,并且想知道无论哪种原因,哪一种都会比其他的更好。或者,除了...
flutter dart flutter-layout
1个回答
0
投票
根据Flutter Docs,它表示活动和完成之间的区别是

ConnectionState.active

:是尚未完成但返回至少一个值的流,ConnectionState.done
© www.soinside.com 2019 - 2024. All rights reserved.