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、完成丁丁麻将辅助器v3...
三分钟了解!甬城竞技辅助器功能... 三分钟了解!甬城竞技辅助器功能app,甬城竞技一贯存在有辅助器app(有辅助挂方法)1、甬城竞技辅助...
重大推荐!天天九州麻将开挂功能... 重大推荐!天天九州麻将开挂功能插件,天天九州麻将好像真的有开挂插件(有辅助挂技巧)天天九州麻将脚本下...
重大消息!斗地主经典版透视功能... 重大消息!斗地主经典版透视功能神器,斗地主经典版真是真的是有透视神器(有挂辅方法)在进入斗地主经典版...
一分钟了解!微乐常德跑得快透视... 一分钟了解!微乐常德跑得快透视功能软件,微乐常德跑得快真是有透视软件(有挂辅方法)微乐常德跑得快是不...
推荐几款新版!微乐够级辅助功能... 推荐几款新版!微乐够级辅助功能app,微乐够级本来有辅助app(有辅助挂教程)1、许多玩家不知道微乐...
推荐十款!微乐过炸透视功能脚本... 推荐十款!微乐过炸透视功能脚本,微乐过炸原来存在有透视脚本(今日头条辅助)1、每一步都需要思考,不同...
记者爆料!微乐三打一透视功能a... 记者爆料!微乐三打一透视功能app,微乐三打一一贯存在有透视app(有辅助挂工具)所有人都在同一条线...