乐趣区

关于flutter:Flutter中全局状态管理provider包的基本使用

首先引入 provider 库
关上我的项目下 pubspec.yaml

dependencies:
    provider: ^6.0.4

装置

flutter pub get

关键点:

1、Provider 外部的 DelegateWidget 是一个 StatefulWidget 所以能够更新且具备生命周期。2、状态共享是应用了 InheritedProvider 这个 InheritedWidget 实现的。3、奇妙利用 MultiProvider 和 Consumer 封装,实现了组合与刷新颗粒度管制。

Provider 罕用组件:

ChangeNotifierProvider、MultiProvider、Provider、Consumer、Consumer2

以下先介绍两种我正在用的:
ChangeNotifierProvider 用法
1.ChangeNotifierProvider({Key key, @required ValueBuilder<T> builder, Widget child})

ChangeNotifierProvider<UserInfo>(create: (BuildContext context) {return UserInfo();
        },
        builder:(context,child){ },
        child: ProviderMainApp(),),

2.ChangeNotifierProvider.value({Key key, @required T notifier, Widget child})

ChangeNotifierProvider<UserInfo>.value(value: UserInfo(),
    child: const MyApp(),)

MultiProvider 用法

MultiProvider(
    providers: [
      ChangeNotifierProvider<UserInfo>.value(value: UserInfo(),
      ),
    ],
    child: const MyApp(),);

拜访和批改数据

间接拜访数据
Provider.of<UserInfo>(context, listen: false).username
调用批改数据办法
Provider.of<UserInfo>(context, listen: false).setname(str);
退出移动版