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的监听器就能够监听到状态改变了。

相关内容

热门资讯

透视好牌!xpoker怎么作弊... 透视好牌!xpoker怎么作弊,友间十三道有什么窍门(本来是有挂)1、友间十三道有什么窍门透视辅助简...
透视黑科技!poker红龙辅助... 透视黑科技!poker红龙辅助,填大坑辅助器视频(本来有挂)一、填大坑辅助器视频软件透明挂的定义与意...
透视模拟器!德普之星透视辅助软... 透视模拟器!德普之星透视辅助软件,透视辅助工具(竟然是有挂)1、首先打开透视辅助工具最新版本,在透视...
透视有挂!拱趴大菠萝机器人,至... 透视有挂!拱趴大菠萝机器人,至余干辅助(好像是有挂);1、每一步都需要思考,不同水平的挑战会更加具有...
透视工具!wepoker透视脚... 透视工具!wepoker透视脚本免费使用视频,微信小程序多乐辅助器下载(果然是真的有挂);1、微信小...
透视苹果版!pokermast... 透视苹果版!pokermaster脚本,四川长牌辅助(竟然是真的有挂);1、下载好四川长牌辅助辅助软...
透视游戏!wepoker手机版... 透视游戏!wepoker手机版辅助,斗棋崇阳麻将辅助脚本(原来有挂)在进入斗棋崇阳麻将辅助脚本辅助挂...
透视黑科技!wejoker开挂... 透视黑科技!wejoker开挂,微友三代辅助(都是真的有挂)1、进入到微友三代辅助黑科技之后,能看到...
透视app!wepoker软件... 透视app!wepoker软件靠谱么,凑一桌辅助软件免费(一贯存在有挂);1、每一步都需要思考,不同...
透视科技!werplan有挂吗... 透视科技!werplan有挂吗,福州十八扑外挂(好像存在有挂);福州十八扑外挂辅助器中分为三种模型:...