Flutter rxDart BehaviorSubject 丢失错误消息

Flutter rxDart BehaviorSubject looses error message

我在 StreamBuilder 中有一个 TextField 监听 BehaviorSubject 流。当快照有错误时,errorText显示它。

问题是当 TextField 滚出可见区域并在 StreamBuilder 重建中滚回但错误文本消失了,因为这次 snapshot.hasError 是假的。

如何维护错误?

您可能希望将错误存储在您 StatefulWidgetString 变量中。
一旦您准备好清除错误(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(),
    );
  },
)