flutter event_bus事件广播事件监听

本文探讨了Flutter中的EventBus和Provider两种关键组件,EventBus用于组件间的数据传递与方法调用,而Provider则专注于状态管理。作者通过实例展示了如何使用EventBus进行事件广播和监听,以及Provider如何实现组件间的共享状态。

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

flutter event_bus事件广播事件监听

event_bus和provider的区别
event_bus:现不同组件之间的数据传值,以及在一个组件中 执行另一个组件的方法。
provider:状态管理来管理统一的状态(数据),实现不同组件直接的传值和数据共享。

event_bus链接地址:https://pub.flutter-io.cn/packages/event_bus

先写一个广播的类

import 'package:event_bus/event_bus.dart';

EventBus eventBus = EventBus();

class ProductContentEvent {
  String? str;
  ProductContentEvent(String str) {
    this.str = str;
  }
}

在需要调用其他组件的组件中发送广播

ventBus.fire(ProductContentEvent('立即购买'));

广播的监听

  var actionEventBus;

  @override
  void initState() {
    super.initState();
    actionEventBus = eventBus.on<ProductContentEvent>().listen((event) {
       //调用其它组件的方法
      _attrBottomSheet();
    });
  }

  @override
  void dispose() {
    super.dispose();
    actionEventBus.cancel();
  }

广播的销毁

  var actionEventBus;

  @override
  void initState() {
    super.initState();
    actionEventBus = eventBus.on<ProductContentEvent>().listen((event) {
       //调用其它组件的方法
      _attrBottomSheet();
    });
  }
  //广播的销毁
  @override
  void dispose() {
    super.dispose();
    actionEventBus.cancel();
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值