BLoCemit不会在UI中更新状态
创始人
2024-12-22 20:00:13
0

首先,确保您在BLoC中正确使用了StreamController和添加了StreamBuilder以更新UI。 检查您是否在BLoC中正确使用了emit方法,即当新状态可用时调用了emit。 如果您的状态仍然没有更新,请检查您在BLoC中的代码,以确保您没有使用类似于Stream的错误实例。 下面是一个可能导致问题的示例:

class MyBloc extends Bloc {
  Stream mapEventToState(MyEvent event) async* {
    if (event is MyEvent) {
      yield MyState();
    }
  }
}

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return StreamBuilder(
      stream: MyBloc().stream,
      builder: (context, snapshot) {
        return Text(snapshot.data.toString());
      },
    );
  }
}

在这个例子中,我们没有将BLoC实例化,而是每次使用StreamBuilder时实例化,这会导致状态丢失。相反,我们应该在Widget的build方法外部实例化BLoC对象,像这样:

class MyWidget extends StatelessWidget {
  final MyBloc _bloc = MyBloc();

  @override
  Widget build(BuildContext context) {
    return StreamBuilder(
      stream: _bloc.stream,
      builder: (context, snapshot) {
        return Text(snapshot.data.toString());
      },
    );
  }
}

这样可以确保我们在每次更新UI时使用同一个BLoC对象,这样我们在emit时更新状态时,UI也会刷新。

相关内容

热门资讯

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