一丶 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();