flutter provider 状态管理使用

时间:2020-09-22

安装

在项目根目录下的pubspec.yaml文件下添加包

dependencies:
provider: ^4.3.2+2

执行 flutter pub get

使用

创建模型

class Counter with ChangeNotifier{
 // 定义数据
 int _count = 0;
 // 数据的获取
 int get count = _count;

 // 修改数据的方法
 void increment() {
   _count++;
   notifyListeners();
 }
}

修改入口文件

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(),
   ),
 );
}

获取模型值

Text(
    '${context.watchcounter().count}',
    style: Theme.of(context).textTheme.headline4);
}/counter

修改模型值

onPressed: () = context.readcounter().increment(),/counter

使用时需要导入包:import 'package:provider/provider.dart';

初始化状态的值

需要在模型构造方法内调用

class MyNotifier with ChangeNotifier {
 MyNotifier() {
   _fetchSomething();
 }

 Futurevoid _fetchSomething() async {}
}

注意方法最后需要调用:notifyListeners();