flutter全局事件总线eventBus

来源:www.jianshu.com 更新时间:2023-05-25 21:55

eventBus 基本使用步骤

1、 在 pubspec.yaml 包文件中添加包文件名,并通过 flutter package get 下载包依赖
    event_bus: ^1.1.1
2、 在需要使用 eventBus 的组件中引入包依赖文件
    import 'package:event_bus/event_bus.dart';
3、 通常封装一个eventBus 事件总线的文件 event_bus.dart
    // 引入 eventBus 包文件
    import 'package:event_bus/event_bus.dart';

    // 创建EventBus
    EventBus eventBus = new EventBus();

    // event 监听 
    class EventFn{
        // 想要接收的数据时什么类型的,就定义相同类型的变量
        dynamic obj;
        EventFn(this.obj);
    }
4、 在需要发送事件的文件中利用 eventBus.fir 发送事件
    //引入封装的e vent_bus.dart 文件
    import 'package:new_flutter/utils/event_bus.dart';

    // 调用 eventBus.fir 发送事件信息
    eventBus.fire(EventFn({
        'a':'b',
        'c':'e'
    }));
5、 在需要监听的文件中,利用 eventBus.on< >().listen() 监听信息
    // 注册监听器,订阅 eventbus
    var eventBusFn = eventBus.on<EventFn>().listen((event) {
        //  event为 event.obj 即为 eventBus.dart 文件中定义的 EventFn 类中监听的数据
        print(event.obj);
    });
6、 在组件销毁时,一定要销毁监听,防止内存泄漏
    @override
    void dispose() {
        super.dispose();
        //取消订阅
        eventBusFn.cancel();
    }