0
点赞
收藏
分享

微信扫一扫

flutter-eventBus兄弟组件传值

MaxWen 2021-10-04 阅读 58
event_bus: ^1.1.0
  • 引入
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));

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.`
举报

相关推荐

0 条评论