zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Flutter高级第6篇:事件广播 、事件监听

事件flutter 高级 监听 广播
2023-09-14 09:04:26 时间

一丶 event_bus 介绍

在前面的课程我们给大家讲过状态管理 Provider 的使用。
通俗的讲状态管理就是:当我们想在多个页面(组件/Widget)之间共享状态(数据),或
者一个页面(组件/Widget)中的多个子组件之间共享状态(数据),这个时候我们就可以
用 Flutter 中的状态管理来管理统一的状态(数据),实现不同组件直接的传值和数据共享。
那么这一讲给大家讲的 event_bus 主要是实现不同组件之间的数据传值,以及在一个组件中
执行另一个组件的方法。

二丶 event_bus 使用事件广播 、事件监听

https://pub.dev/packages/event_bus

1 、配置安装依赖
event_bus: ^1.1.0

2 、 新建一文件 EventBus.dart 配置如下代码

import 'package:event_bus/event_bus.dart';
//Bus 初始化
EventBus eventBus = EventBus();
class ProductContentEvent {
  String text;
  ProductContentEvent(String text){
    this.text = text;
  }
}

3 、 在需要广播事件的页面引入上面的 EventBus.dart类 然后配置如下代码

eventBus.fire(new ProductContentEvent('购物车'));

4 、 在需要监听广播的地方引入上面的 EventBus.dart 类,然后配置如下代码

void initState() {
  super.initState();
//监听广播
  eventBus.on<ProductContentEvent>().listen((event){
    print(event);
    this._attrBottomSheet();
  });
}

三丶 event_bus 取消事件监听

var actionSubscription =eventBus.on<ProductContentEvent>().listen((event){
  print(event);
  this._attrBottomSheet();
});
actionSubscription.cancel();