而且,
ConnectionState.active
和ConnectionState.done有什么区别?我是否应该一直使用snapshot.data直到ConnectionState.done(Case 1或Case 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种情况,并且想知道无论哪种原因,哪一种都会比其他的更好。或者,除了...