event_bus 介紹
在前面的課程咱們給你們講過狀態管理 Provider 的使用。
通俗的講狀態管理就是:當咱們想在多個頁面(組件/Widget)之間共享狀態(數據),或
者一個頁面(組件/Widget)中的多個子組件之間共享狀態(數據),這個時候咱們就能夠
用 Flutter 中的狀態管理來管理統一的狀態(數據),實現不一樣組件直接的傳值和數據共享。
event_bus 主要是實現不一樣組件之間的數據傳值,以及在一個組件中
執行另外一個組件的方法。
event_bus 使用 事件廣播 事件監聽
https://pub.dev/packages/event_bus
一、配置安裝依賴
event_bus: ^1.1.0
二、新建一文件 EventBus.dart 配置以下代碼
import 'package:event_bus/event_bus.dart';
//Bus 初始化
EventBus eventBus = EventBus();
class ProductContentEvent {
String text;
ProductContentEvent(String text){
this.text = text;
}
}
三、在須要廣播事件的頁面引入上面的 EventBus.dart 類 而後配置以下代碼湖北衆猿騰網絡科技有限公司
eventBus.fire(new ProductContentEvent('購物車'));
四、在須要監聽廣播的地方引入上面的 EventBus.dart 類 而後配置以下代碼
void initState() {
super.initState();
//監聽廣播
eventBus.on<ProductContentEvent>().listen((event){
print(event);
this._attrBottomSheet();
});
}
4、event_bus 取消事件監聽
var actionSubscription =eventBus.on<ProductContentEvent>().listen((event){
print(event);
this._attrBottomSheet();
});
actionSubscription.cancel();
加羣452892873 下載對應26課文件,運行方法,建好項目,直接替換lib目錄,在往pubspec.yaml添加上一下擴展。內含本課pdf課件網絡
cupertino_icons: ^0.1.2
flutter_swiper: ^1.1.6
flutter_screenutil: ^0.5.3
dio: ^2.1.13
shared_preferences: ^0.5.3+4
flutter_inappbrowser: ^1.2.1
provider: ^3.1.0app
event_bus: ^1.1.0
本課關鍵文件:
lib/pages/ProductContent/ProductContentFirst.dart
lib/pages/ProductContent.dart
lib/services/EventBus.dart