flutter插件 - event_bus(事件总线)

简介

官方文档

主要是实现不同组件之间的数据传值,以及在一个组件中执行另一个组件的方法

使用

  • 修改pubspec.yaml文件,添加依赖event_bus
# ... dev_dependencies: # ... event_bus: ^1.1.1 # ...
  • lib/services/目录下新建文件EventBus.dart
import 'package:event_bus/event_bus.dart'; // Bus 初始化 EventBus eventBus = EventBus(); class ProductContentEvent { String str; ProductContentEvent(String str) { this.str = str; } }
  • 在需要广播事件的页面引入上面的EventBus.dart类 然后配置如下代码
// 广播 弹出筛选 eventBus.fire(new ProductContentEvent('加入购物车'));
  • 在需要监听广播的地方引入上面的EventBus.dart类 然后配置如下代码
class _ProductContentFirstState extends State<ProductContentFirst> { // ... var actionEventBus; @override void initState() { super.initState(); // ... // 监听所有广播 // eventBus.on().listen((event) { // print(event); // this._attrBottomSheet(); // }); // 监听 ProductContentEvent 广播 this.actionEventBus = eventBus.on<ProductContentEvent>().listen((str) { print(str); this._attrBottomSheet(); }); } // 销毁 void dispose() { super.dispose(); // 取消事件监听 this.actionEventBus.cancel(); } }

创作不易,若本文对你有帮助,欢迎打赏支持作者!

 分享给好友: