Flutter通知另一个页面刷新状态(EventBus)

Posted HackShendi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter通知另一个页面刷新状态(EventBus)相关的知识,希望对你有一定的参考价值。

Hello, I’m Shendi

在 Flutter 中,可以通过 setState 函数刷新状态
但是 setState 函数只能在状态类里使用
于是当需要在页面跳转后能通知跳转的页面就需要使用到一些库
这里介绍 EventBus(事件总线) 的使用

添加库

首先在 pubspec.yaml 文件中添加库,版本可根据官方的添加最新的,这里使用 2.0.0

# 事件总线
event_bus: ^2.0.0

引入包

import 'package:event_bus/event_bus.dart';

创建 EventBus

EventBus eventBus = EventBus();

创建事件类型

这里直接用类定义,也可以设置创建此类型时需要传递的参数等…

我的需求仅仅是通知另一个页面刷新,所以这里只是定义一个类即可

class RoomFlush 

发送事件

通过 fire 进行发送事件,参数为事件类型

EventBus eventBus = EventBus();
eventBus.fire(RoomFlush());

监听事件

通过 on<事件类型>().listen() 监听事件

eventBus.on<RoomFlush>().listen((event) 
	// 触发
);

ps: 同一条总线才有效

至此,我的需求已经实现…

以上是关于Flutter通知另一个页面刷新状态(EventBus)的主要内容,如果未能解决你的问题,请参考以下文章

Flutter通知另一个页面刷新状态(EventBus)

Flutter通知另一个页面刷新状态(EventBus)

Flutter页面状态在返回时不刷新

Flutter 状态管理 | StreamBuild 局部刷新的效果Flutter局部刷新

Flutter - 从 AppBar 返回上一页不会刷新页面,使用 Navigator.pop(context)

Flutter 状态管理之Bloc上