【问题标题】:yield BLoC state inside a timer's recurring callback在计时器的重复回调中产生 BLoC 状态
【发布时间】:2020-10-03 04:21:18
【问题描述】:

我如何从Timer 的重复回调中获得yield 状态?

我的班级中有一个 Timer 对象,当用户点击开始时,会创建一个新对象,在它的回调中我需要调用 yield ...
这是我到目前为止的代码,但它什么也没做:

if (event is CounterETimerStart) {
        timer = Timer.periodic(Duration(seconds: 1), (timer) async* {
          yield CounterNewSecond(++m.passedTime);
        });
}

【问题讨论】:

    标签: flutter dart bloc


    【解决方案1】:

    在来自 github 的 @RollyPeres 的帮助下,这是一种方法:

    您可以添加一个事件并对其做出反应。

    if (event is CounterETimerStart) {
            timer = Timer.periodic(Duration(seconds: 1), (timer) {
                  add(TimerTicked());
              });
        }
    if (event is TimerTicked) {
       yield CounterNewSecond(++m.passedTime);
    }
    

    【讨论】:

      猜你喜欢
      • 2019-10-31
      • 2020-03-03
      • 2020-07-20
      • 2019-11-12
      • 2020-07-08
      • 2020-06-17
      • 2021-01-28
      • 2017-11-04
      • 2020-05-06
      相关资源
      最近更新 更多