flutter-eventBus兄弟组件传值

依赖

event_bus: ^1.1.0

eventBus使用流程

  • 引入
import 'package:event_bus/event_bus.dart';
  • 创建实例
EventBus eventBus = new EventBus();
  • 定义event
  • 注册监听
  • 监听特定的event
eventBus.on<UserLoggedInEvent>().listen((event) {
  print(event.user);
});
  • 监听所有的event
eventBus.on().listen((event) {
 print(event. runtimeType);
});
  • 发送一个event
eventBus.fire(new UserLoggedInEvent(myUser));

案例: Flutter eventBus 使用修改切换AppBottomNavigationBar

1.编写 event.dart

import 'package:flutter/material.dart';
import 'package:event_bus/event_bus.dart';

EventBus eventBus = EventBus();

///App TabBar切换
class AppTabChange {
    int pageIndex;
  AppTabChange({this.pageIndex,});
}

2.路由监听

/// 路由监听
eventBus.on<AppTabChange>().listen((event) {
   setState(() {
    _currentIndex = event.pageIndex;
    setState(() {});
    _pageController.jumpToPage(event.pageIndex);
  });
});

3.使用

eventBus.fire(AppTabChange(pageIndex: 1));

报错补充

1.页面为初始化时,event事件监听不生效

解决办法:

`在initState 里面重写,第一次会走initState.`
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容