美文网首页Flutter
flutter-eventBus兄弟组件传值

flutter-eventBus兄弟组件传值

作者: StevenHu_Sir | 来源:发表于2019-08-29 18:02 被阅读0次

    依赖

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

    相关文章

      网友评论

        本文标题:flutter-eventBus兄弟组件传值

        本文链接:https://www.haomeiwen.com/subject/fwkwectx.html