BLoC返回每个事件后都相同的数据
创始人
2024-12-22 20:00:17
0

可使用 StreamController 作为 BLoC 的输出,并在每次状态变化时将新的状态添加到流中。以下是一个简单的示例:

import 'dart:async';

enum CounterEvent { increment }

class CounterBloc {
  int _counter = 0;
  
  final _counterController = StreamController();
  
  Stream get counterStream => _counterController.stream;
  
  void mapEventToState(CounterEvent event) {
    if (event == CounterEvent.increment) {
      _counter++;
      _counterController.add(_counter);
    }
  }
  
  void dispose() {
    _counterController.close();
  }
}

在此示例中,当事件 CounterEvent.increment 发生时,将更新 _counter 的值,并将新的计数器值添加到 _counterController 流中。获取 BLoC 值时,使用 counterStream 接收新值。

然后,您可以在 UI 中使用 StreamBuildercounterStream 与视图结合起来:

class CounterWidget extends StatelessWidget {
  final CounterBloc _counterBloc;

  const CounterWidget({Key key, CounterBloc counterBloc})
      : _counterBloc = counterBloc,
        super(key: key);

  @override
  Widget build(BuildContext context) {
    return StreamBuilder(
      stream: _counterBloc.counterStream,
      builder: (context, snapshot) {
        if (snapshot.hasData) {
          return Text('Counter: ${snapshot.data}');
        } else {
          return Text('Counter: 0');
        }
      },
    );
  }
}

通过上述方式解决后,每当一个新的 'CounterEvent.increment” 事件被触发时,该 BLoC 将向输出流发送新的值,使视图随之变化。

相关内容

热门资讯

透视模拟器!德普之星透视辅助软... 透视模拟器!德普之星透视辅助软件,透视辅助工具(竟然是有挂)1、首先打开透视辅助工具最新版本,在透视...
透视有挂!拱趴大菠萝机器人,至... 透视有挂!拱趴大菠萝机器人,至余干辅助(好像是有挂);1、每一步都需要思考,不同水平的挑战会更加具有...
透视工具!wepoker透视脚... 透视工具!wepoker透视脚本免费使用视频,微信小程序多乐辅助器下载(果然是真的有挂);1、微信小...
透视苹果版!pokermast... 透视苹果版!pokermaster脚本,四川长牌辅助(竟然是真的有挂);1、下载好四川长牌辅助辅助软...
透视游戏!wepoker手机版... 透视游戏!wepoker手机版辅助,斗棋崇阳麻将辅助脚本(原来有挂)在进入斗棋崇阳麻将辅助脚本辅助挂...
透视黑科技!wejoker开挂... 透视黑科技!wejoker开挂,微友三代辅助(都是真的有挂)1、进入到微友三代辅助黑科技之后,能看到...
透视app!wepoker软件... 透视app!wepoker软件靠谱么,凑一桌辅助软件免费(一贯存在有挂);1、每一步都需要思考,不同...
透视科技!werplan有挂吗... 透视科技!werplan有挂吗,福州十八扑外挂(好像存在有挂);福州十八扑外挂辅助器中分为三种模型:...
透视讲解!wepoker永久免... 透视讲解!wepoker永久免费脚本,哈糖大菠萝提高胜率(竟然真的是有挂)哈糖大菠萝提高胜率辅助器中...
透视攻略!wepoker免费辅... 透视攻略!wepoker免费辅助器,广东雀神挂件怎么样(本来存在有挂)所有人都在同一条线上,像星星一...