广播_event_bus

100 阅读1分钟

涉及到跨界面的事件通知,如登录回调,关注回调,滑动监听等等。主打的就是一个 订阅、发布

引用

event_bus: ^2.0.0

使用

声明一个全局的 eventBus对象

image.png

订阅 on

image.png

携带 类型 监听的就是这个类型的广播,不携带类型则是监听全部广播

发布 fire

image.png

cacnel

订阅的时候需要绑定到当前widget 然后再dispose 方法中 取消监听

late StreamSubscription<ProductContentEvent> actionEeventBus;
@override
void dispose() {
  super.dispose();
  actionEeventBus.cancel();
}

项目中使用

项目中是封装的eventBus

bus.emit(EventBusKey.subtractPraiseCount, widget.sourceId!);
bus.on(EventBusKey.subtractPraiseCount, _subtractPraiseCount);

void _subtractPraiseCount(articleId){
  if(articleId==widget.article?.id){
    _detailCommentBarModel.likeCount--;
    if (null != widget.article?.praiseCount) {
      widget.article?.praiseCount--;
    }
  }
}

image.png