Flutter跨组件事件传递——Eventbus

一个简单好用的第三方工具——Eventbus:
地址:https://pub.dev/packages/event_bus

1.安装

pubspec.yaml文件导入:并执行pub get

event_bus: ^1.1.1

2.使用

全局创建一个eventBus对象

  final eventBus = EventBus();
  • 发送消息widget
class TSButton extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return RaisedButton(
      child: Text("Eventbus"),
      onPressed: (){
          eventBus.fire("发送消息");
      },
    );
  }
}
  • 接受消息widget

class TSText extends StatefulWidget {
  @override
  _TSTextState createState() => _TSTextState();
}

class _TSTextState extends State<TSText> {
  String _message = "hello";
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    eventBus.on<String>().listen((event) {
      setState(() {
        _message = event;
      });
    });
  }
  @override
  Widget build(BuildContext context) {
    return Text(_message,style: TextStyle(color: Colors.red,fontSize: 20));
  }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容