BlocPattern-Flutter-如何在bloc模式中将状态从一个屏幕传递到另一个屏幕?
创始人
2024-12-22 22:00:18
0

在bloc模式中,可以使用StreamController和Stream来实现在不同屏幕之间传递状态。

首先,在要传递状态的屏幕中创建一个StreamController,该控制器将负责向订阅者广播状态更改。例如,假设要将用户输入的文本从屏幕1传递到屏幕2:

class Screen1 extends StatelessWidget {
  final textController = TextEditingController();
  final _textStreamController = StreamController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: TextField(
          controller: textController,
          onChanged: (String text) {
            _textStreamController.sink.add(text);
          },
        ),
      ),
    );
  }

  //Don't forget to dispose StreamController
  @override
  dispose() {
    _textStreamController.close();
  }
}

在此示例中,StreamController _textStreamController在屏幕1中创建。每次用户更改文本字段中的文本时,都会通过_sink_方法向订阅的广播消息中添加新文本。以下是接收屏幕的代码:

class Screen2 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: StreamBuilder(
          stream: BlocProvider.of(context).textStream,
          builder: (context, snapshot) {
            return Text(snapshot.data ?? '');
          },
        ),
      ),
    );
  }
}

在此示例中,将在_bloc_模式中使用一个StreamBuilder Widget将接收的文本显示在屏幕2中。可以在_bloc_类中创建一个新的StreamController或使用现有的StreamController。所以Screen1和Bloc类代码如下:

class Screen1 extends StatelessWidget {
  final textController = TextEditingController();
  final _textStreamController = StreamController();

  @override
  Widget

相关内容

热门资讯

6分钟了解!掌酷十三张外 挂,... 6分钟了解!掌酷十三张外 挂,青龙大厅辅助器,透明挂教程(有挂攻略);1、操作简单,无需注册,只需要...
四分钟了解!荔枝竞技游戏外 挂... 四分钟了解!荔枝竞技游戏外 挂,369山东麻将,AI教程(有挂普及)进入游戏-大厅左侧-新手福利-激...
1分钟了解!浙衢麻将有挂吗,聚... 1分钟了解!浙衢麻将有挂吗,聚闲麻将有没有挂,教你教程(有挂辅助挂)1、实时聚闲麻将有没有挂开挂更新...
两分钟了解!乐乐围棋入门怎么开... 两分钟了解!乐乐围棋入门怎么开挂,福建天天开心辅助工具,第三方教程(有挂插件);1、很好的工具软件,...
九分钟了解!微友麻将亲友圈有挂... 九分钟了解!微友麻将亲友圈有挂吗,闲逸碰胡辅助器,微扑克教程(有挂技巧);1、超多福利:超高返利,海...
2分钟了解!同城字牌有挂吗,乐... 2分钟了解!同城字牌有挂吗,乐享牛牛有没有挂,规律教程(有挂黑科技)1、进入游戏-大厅左侧-新手福利...
8分钟了解!情怀麻将挂真的,哈... 8分钟了解!情怀麻将挂真的,哈局十三张,攻略教程(有挂插件)1、玩家可以在情怀麻将挂真的软件透明挂俱...
一分钟了解!广西友乐麻将是正规... 一分钟了解!广西友乐麻将是正规平台吗有挂吗,闽游app辅助器,可靠教程(有挂揭秘);运广西友乐麻将是...
一分钟了解!逗娱碰胡,胡乐麻将... 一分钟了解!逗娱碰胡,胡乐麻将神器免费下,力荐教程(有挂解说);一、胡乐麻将神器免费下软件透明挂的定...
十分钟了解!兴动辅助器,沐沐福... 十分钟了解!兴动辅助器,沐沐福建麻将app有猫腻吗,揭秘攻略(有挂机密)沐沐福建麻将app有猫腻吗辅...