按钮在Flutter中保留了Bloc的旧状态
创始人
2024-11-04 08:30:56
0

在Flutter中,可以通过使用StreamBuilderBlocBuilder来解决按钮保留旧状态的问题。

在使用StreamBuilder时,需要将Bloc的状态流作为stream参数传递给StreamBuilder,然后在builder回调函数中根据不同的状态返回相应的按钮状态。

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

  @override
  Widget build(BuildContext context) {
    return StreamBuilder(
      stream: myBloc.stateStream,
      builder: (context, snapshot) {
        if (snapshot.hasData) {
          if (snapshot.data is LoadingState) {
            return CircularProgressIndicator(); // 显示加载中状态
          } else if (snapshot.data is SuccessState) {
            return RaisedButton(
              onPressed: () {
                // 处理按钮点击事件
              },
              child: Text('按钮'),
            );
          } else if (snapshot.data is ErrorState) {
            return Text('发生错误'); // 显示错误状态
          }
        }
        return Container(); // 默认情况下返回空容器
      },
    );
  }
}

另一种解决方法是使用BlocBuilder,它是针对Bloc的特定实现。BlocBuilderbuilder回调函数中接收BuildContextstate参数,并返回相应的小部件。

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

  @override
  Widget build(BuildContext context) {
    return BlocBuilder(
      bloc: myBloc,
      builder: (context, state) {
        if (state is LoadingState) {
          return CircularProgressIndicator(); // 显示加载中状态
        } else if (state is SuccessState) {
          return RaisedButton(
            onPressed: () {
              // 处理按钮点击事件
            },
            child: Text('按钮'),
          );
        } else if (state is ErrorState) {
          return Text('发生错误'); // 显示错误状态
        }
        return Container(); // 默认情况下返回空容器
      },
    );
  }
}

注意,以上示例中的MyBlocMyState是假设的,并且需要根据实际情况进行替换。此外,你还需要在适当的地方定义和实现MyBlocMyState

相关内容

热门资讯

有消息称!哈灵脚本修改器,一贯... 有消息称!哈灵脚本修改器,一贯真的有辅助神器(揭秘有挂)-哔哩哔哩1、下载好哈灵脚本修改器脚本下载之...
在玩家背景下!天酷游戏交易平台... 在玩家背景下!天酷游戏交易平台,竟然有挂辅助插件(有挂存在)-哔哩哔哩1、该软件可以轻松地帮助玩家将...
这一现象值得深思!海贝之城辅助... 这一现象值得深思!海贝之城辅助器,确实是真的辅助工具(有挂辅助)-哔哩哔哩1、点击下载安装,海贝之城...
做出回应!大咖娱乐挂脚本,真是... 做出回应!大咖娱乐挂脚本,真是真的是有辅助挂(有挂助手)-哔哩哔哩1、每一步都需要思考,不同水平的挑...
随着!广西老友玩辅助,好像是有... 随着!广西老友玩辅助,好像是有辅助软件(讲解有挂)-哔哩哔哩1、广西老友玩辅助免费辅助多个强度级别选...
有消息称!全来潜山跑风辅助器,... 您好,全来潜山跑风辅助器这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多...
围绕透视问题!新二号辅助软件下... 围绕透视问题!新二号辅助软件下载,果然存在有辅助工具(有挂分享)-哔哩哔哩新二号辅助软件下载辅助器是...
最终!微信微乐挂有没有,其实真... 最终!微信微乐挂有没有,其实真的有辅助软件(有挂方针)-哔哩哔哩1、微信微乐挂有没有有没有辅助教程、...
据玩家消息!兴动互娱绥化辅助器... 据玩家消息!兴动互娱绥化辅助器挂,确实有挂辅助工具(有挂技巧)-哔哩哔哩一、兴动互娱绥化辅助器挂可以...
近年来!微信微乐小程序辅助软件... 近年来!微信微乐小程序辅助软件,本来有挂辅助挂(有挂讲解)-哔哩哔哩一、微信微乐小程序辅助软件游戏安...