0

我有一个听流的TextField内部。当快照有错误时,显示它。StreamBuilderBehaviorSubjecterrorText

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

如何维护错误?

4

1 回答 1

2

您可能希望将错误存储在 you 的String变量中StatefulWidget
一旦您准备好清除错误(例如用户按下清除按钮),您只需将此变量设置为 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(),
    );
  },
)
于 2019-04-11T05:09:48.913 回答