错误状态:流已被收听。 (useStream 不会关闭流)

时间:2021-03-14 11:30:50

标签: flutter flutter-hooks

在我的 HookWidget 中,我调用:

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

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

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

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

0 个答案:

没有答案