flutter-eventBus兄弟组件传值

依赖

event_bus: ^1.1.0

eventBus使用流程

  • 引入
import 'package:event_bus/event_bus.dart';
  • 创建实例
EventBus eventBus = new EventBus();
  • 定义event
  • 注册监听
  • 监听特定的event
eventBus.on().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().listen((event) {
   setState(() {
    _currentIndex = event.pageIndex;
    setState(() {});
    _pageController.jumpToPage(event.pageIndex);
  });
});

3.使用

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

报错补充

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

解决办法:

`在initState 里面重写,第一次会走initState.`

你可能感兴趣的:(flutter-eventBus兄弟组件传值)