Flutter

flutter-eventBus兄弟组件传值

2019-08-29  本文已影响0人  StevenHu_Sir

依赖

event_bus: ^1.1.0

eventBus使用流程

import 'package:event_bus/event_bus.dart';
EventBus eventBus = new EventBus();
eventBus.on<UserLoggedInEvent>().listen((event) {
  print(event.user);
});
eventBus.on().listen((event) {
 print(event. runtimeType);
});
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.`
上一篇 下一篇

猜你喜欢

热点阅读