event_bus 使用 事件广播 事件监听
https://pub.dev/packages/event_bus
创建 eventBus.dart
import 'package:event_bus/event_bus.dart';
EventBus eventBus = EventBus();
class LoggedInEvent {
var user;
LoggedInEvent(this.user);
}
执行的地方
RaisedButton(
child: Text('向子组件发送'),
onPressed: () {
eventBus.fire(LoggedInEvent('你好啊LoggedInEvent'));
},
),
ChildPage(),
监听的地方, 子组件里
var cancleLoggedInEvent;
@override
initState() {
super.initState();
cancleLoggedInEvent = eventBus.on<LoggedInEvent>().listen((event) {
// Print the runtime type. Such a set up could be used for logging.
print(event.user);
change();
});
}
dispose(){
super.dispose();
cancleLoggedInEvent.cancle(); // 取消监听
}
eventBus.on<LoggedInEvent>().listen((event) {}); // 监听单个;
eventBus.on().listen((event) {}); // 监听全部事件