一 、数据共享provider
https://pub.dev/packages/provider/example
1、集成lib
provider: ^4.3.2+2
2、在mian方法中声明:
import 'package:provider/provider.dart';
/// This is a reimplementation of the default Flutter application using provider + [ChangeNotifier].
void main() {
runApp(
/// Providers are above [MyApp] instead of inside it, so that tests
/// can use [MyApp] while mocking the providers
MultiProvider(
providers: [
ChangeNotifierProvider(create: (_) => Counter()),
],
child: MyApp(),
),
);
}
3、创建类继承ChangeNotifier,写属性
class Counter with ChangeNotifier {
int _count = 0;
int get count => _count;
void increment() {
_count++;
notifyListeners();
}
4、方法使用: context.read<Counter>().increment(),
属性读取: '${context.watch<Counter>().count}',
二、事件广播,可进行Ui操作 EventBus使用
1、引入lib
event_bus: ^1.1.1
2、写一个类。
import 'package:event_bus/event_bus.dart';
import 'package:event_bus/event_bus.dart';
EventBus eventBus = EventBus();
//商品详情广播数据
class ProductContentEvent {
String str;
ProductContentEvent(String str){
this.str = str;
}
}
class UserEvent {
String str;
UserEvent(String str){
this.str = str;
}
}
//增加地址成功事件
class AddressEvent {
String str;
AddressEvent(String str){
this.str = str;
}
}
3、事件监听
@override
void initState() {
// TODO: implement initState
super.initState();
this._getAddressList();
//监听增加收货地地成功
eventBus.on<AddressEvent>().listen((event) {
this._getAddressList();
});
}
4、事件广播
eventBus.fire(new AddressEvent("增加成功"));
本文介绍了Flutter中使用Provider进行数据共享的步骤,包括集成库、声明Provider、创建ChangeNotifier类以及如何调用方法和读取属性。同时,文章也探讨了EventBus的事件广播功能,用于UI操作,包括引入库、定义事件类、监听和广播事件。
510

被折叠的 条评论
为什么被折叠?



