0

在我的HookWidget,我打电话:

final myData = useStream<MyData>(service.getDataStream(), initialData: {});

不幸的是,当返回同一个屏幕/导航时,我得到Bad state: Stream has already been listened to.. 这可能是因为之前的流没有关闭,并且无法再次收听。

为什么不useStream关闭流,或者我必须这样做(如何?,它在 build 方法中创建,因此可以在 dispose 中关闭)?service包含StreamController一个:

class Service {
    final _dataController = StreamController<MyData>();
    
    Stream<Data> getDataStream() {
    return _dataController.stream;
  }
}
4

0 回答 0