Bloc监听器没有监听到状态改变。
创始人
2024-12-22 20:00:26
0

在Bloc的状态改变后,需要通知Bloc的监听器。这可以通过在Bloc中使用StreamController来完成。

示例代码如下:

import 'dart:async';

import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';

part 'counter_event.dart';
part 'counter_state.dart';

class CounterBloc extends Bloc {
  CounterBloc() : super(CounterInitial());

  int _counter = 0;

  StreamController _counterController = StreamController.broadcast();

  Stream get counterStream => _counterController.stream;

  @override
  Stream mapEventToState(
    CounterEvent event,
  ) async* {
    if (event is Increment) {
      _counter++;
      _counterController.add(_counter); // 发送计数器值
      yield CounterChanged(_counter); // 返回新的Bloc状态
    } else if (event is Decrement) {
      _counter--;
      _counterController.add(_counter); // 发送计数器值
      yield CounterChanged(_counter); // 返回新的Bloc状态
    }
  }

  @override
  Future close() {
    _counterController.close();
    return super.close();
  }
}

在上面的代码中,首先定义了一个StreamController类型的_counterController,并在构造函数中进行了初始化。

然后在mapEventToState方法中,每当计数器改变时,调用了_counterController.add方法来通知监听器,同时返回新的Bloc状态CounterChanged(_counter)

使用这种方式,Bloc的监听器就能够监听到状态改变了。

相关内容

热门资讯

第8分钟了解(微扑克ai代打)... 第8分钟了解(微扑克ai代打)黑科技透明挂辅助代打(透视)解密教程(2026已更新)(哔哩哔哩)相信...
七分钟了解(Wepoke苹果版... 七分钟了解(Wepoke苹果版本)外挂透明挂辅助安装(透视)2025版教程(2024已更新)(哔哩哔...
第五分钟了解(靠谱WPK)外挂... 《第五分钟了解(靠谱WPK)外挂辅助插件安装安装(透视)我来教教你(2021已更新)(哔哩哔哩)》 ...
第1分钟了解(赢之城)软件透明... 第1分钟了解(赢之城)软件透明挂辅助科技(透视)必赢教程(2024已更新)(哔哩哔哩);第1分钟了解...
第6分钟了解(Wepoke透视... 第6分钟了解(Wepoke透视)软件透明挂辅助工具(透视)分享教程(2025已更新)(哔哩哔哩);1...
第八分钟了解(德扑网上设置)软... 第八分钟了解(德扑网上设置)软件透明挂辅助科技(透视)规律教程(2025已更新)(哔哩哔哩),德扑网...
7分钟了解(wepoker)软... 7分钟了解(wepoker)软件透明挂辅助器(透视)wpk教程(2025已更新)(哔哩哔哩);1、完...
第2分钟了解(wpk系统)软件... 第2分钟了解(wpk系统)软件透明挂辅助ai(透视)AI教程(2025已更新)(哔哩哔哩);wpk系...
7分钟了解(德扑之星透明)软件... 【福星临门,好运相随】;7分钟了解(德扑之星透明)软件透明挂辅助神器(透视)科技教程(2025已更新...
第八分钟了解(aapokEr)... 第八分钟了解(aapokEr)外挂透明挂辅助黑科技(透视)透明挂教程(2026已更新)(哔哩哔哩);...