Flutter Rxdart的简单使用

本文介绍如何使用RxDart实现Flutter应用中不同页面的数据监听与传递。通过创建PublishSubject实例,可在各页面间轻松发送与接收数据,实现有效的状态管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Rxdart的简单使用

RxDart是一个响应式编程思维的实现,学习的时候发现网上很多都是有关于RxDart中几种不同类型Subject的介绍,并没有我想要的实战代码,于是自己尝试,实现了不同页面监听并传递数据的效果。
关于不同类型Subject的介绍大家自行百度。

先添加依赖

rxdart: ^0.25.0

然后创建RXdart的工具类

PublishSubject<> 放什么数据类型都可以哦

class RxUtil {
  static final subject = PublishSubject<String>();
}

这个时候就可以在需要被观察的地方调用 subject.add() 发送数据了

class DemoPage extends StatefulWidget {
  @override
  _DemoPageState createState() => _DemoPageState();
}

class _DemoPageState extends State<DemoPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: RaisedButton(
          child: Text("Hollow flutter"),
          onPressed: (){
            RxUtil.subject.add("Hollow flutter");
            Navigator.pop(context);
          },
        ),
      ),
    );
  }
}

最后一步就是注册实现监听了

class _MyHomePageState extends State<MyHomePage> {
  String content="Hollow Rxdart";
  @override
  void dispose() {
    super.dispose();
      RxUtil.subject?.close();
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            RaisedButton(
              child: Text(content),
                onPressed: (){
                //实现监听
                RxUtil.subject.stream.listen((data) => setState(() {
                  print("******************"+data);
                  content=data;
                }));
                  Navigator.push(context, MaterialPageRoute(builder: (BuildContext context) {
                     return DemoPage();//构造函数传递参数
                    }));
                }
            )
          ],
        ),
      ),
    );
  }
}

注意在不需要监听的时候及时关闭监听 subject.close()

至此就实现了利用RXdart不同页面监听并传值的效果,大家可以复制代码运行一下看看效果。
使用起来还是比较简单的,至于RXdart中更复杂的功能,以后慢慢学习。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值