Flutter rxDart BehaviorSubject 丢失错误消息
Flutter rxDart BehaviorSubject looses error message
我在 StreamBuilder
中有一个 TextField
监听 BehaviorSubject
流。当快照有错误时,errorText
显示它。
问题是当 TextField
滚出可见区域并在 StreamBuilder
重建中滚回但错误文本消失了,因为这次 snapshot.hasError
是假的。
如何维护错误?
您可能希望将错误存储在您 StatefulWidget
的 String
变量中。
一旦您准备好清除错误(f.ex。用户按下清除按钮),您只需将此变量设置为 null。
String errorMsg;
StreamBuilder(
stream: myStream,
builder: (BuildContext context, snapshot) {
if (snapshot.hasError) {
errorMsg = snapshot.error.toString();
}
if (errorMsg != null) {
return Text(errorMsg);
}
return new Text(
snapshot.data.toString(),
);
},
)
我在 StreamBuilder
中有一个 TextField
监听 BehaviorSubject
流。当快照有错误时,errorText
显示它。
问题是当 TextField
滚出可见区域并在 StreamBuilder
重建中滚回但错误文本消失了,因为这次 snapshot.hasError
是假的。
如何维护错误?
您可能希望将错误存储在您 StatefulWidget
的 String
变量中。
一旦您准备好清除错误(f.ex。用户按下清除按钮),您只需将此变量设置为 null。
String errorMsg;
StreamBuilder(
stream: myStream,
builder: (BuildContext context, snapshot) {
if (snapshot.hasError) {
errorMsg = snapshot.error.toString();
}
if (errorMsg != null) {
return Text(errorMsg);
}
return new Text(
snapshot.data.toString(),
);
},
)