不处理流,而是将计数器流值重置为 0 并再次收听

Not disposing the stream , but resetting the counter stream value to 0 and listening to it again

我有一个计数器块并在第二页上显示计数器,我想在导航回第一页或按下后退按钮时将计数器值重置为 0(ZERO) 而不处理流 这样我就可以在整个应用程序中收听流媒体。

简而言之,每当返回第二页时,流计数应该从 0 开始。

CounterBloc.dart

import 'dart:async';

class CounterBloc {
  int _counter = 0;
  StreamController<int> _countController = StreamController<int>.broadcast();

  Stream<int> get counterStream => _countController.stream;
  StreamSink<int> get counterSink => _countController.sink;

  void incrementCounter() {
    _counter++;
    counterSink.add(_counter);
  }
}

您需要在您的 Bloc 中创建一个新方法(操作)。

  void resetCounter() {
    _counter = 0;
    counterSink.add(_counter);
  }