flutter event_bus事件广播事件监听

flutter event_bus事件广播事件监听

event_bus和provider的区别
event_bus:现不同组件之间的数据传值,以及在一个组件中 执行另一个组件的方法。
provider:状态管理来管理统一的状态(数据),实现不同组件直接的传值和数据共享。

event_bus链接地址:https://pub.flutter-io.cn/packages/event_bus

先写一个广播的类

import 'package:event_bus/event_bus.dart';

EventBus eventBus = EventBus();

class ProductContentEvent {
    
    
  String? str;
  ProductContentEvent(String str) {
    
    
    this.str = str;
  }
}

在需要调用其他组件的组件中发送广播

ventBus.fire(ProductContentEvent('立即购买'));

广播的监听

  var actionEventBus;

  @override
  void initState() {
    
    
    super.initState();
    actionEventBus = eventBus.on<ProductContentEvent>().listen((event) {
    
    
       //调用其它组件的方法
      _attrBottomSheet();
    });
  }

  @override
  void dispose() {
    
    
    super.dispose();
    actionEventBus.cancel();
  }

广播的销毁

  var actionEventBus;

  @override
  void initState() {
    
    
    super.initState();
    actionEventBus = eventBus.on<ProductContentEvent>().listen((event) {
    
    
       //调用其它组件的方法
      _attrBottomSheet();
    });
  }
  //广播的销毁
  @override
  void dispose() {
    
    
    super.dispose();
    actionEventBus.cancel();
  }

猜你喜欢

转载自blog.csdn.net/m0_46527751/article/details/123556928
今日推荐