Flutter Provider的使用

Posted 安果移不动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter Provider的使用相关的知识,希望对你有一定的参考价值。

需求:点击Dialog的ok按键更新外部的视图

首先创建Strore用于单独控制的变量

import 'package:flutter/material.dart';

class GiftStore with ChangeNotifier {
  bool _isShowGift=true;

  bool get isShowGfit => _isShowGift;

  void update(bool _) {
    _isShowGift = _ ?? false;
    notifyListeners();
  }
}

注册到Main中 他就是全局的了

  runApp(
    MultiProvider(
      providers: [
     
        ChangeNotifierProvider(create: (_) => GiftStore()),
      ],
      child: FlutterApp(),
    ),
  );
  • 如何使用呢

可是使用 Consumer 控件拿到这个变量

     Consumer(builder: (context, GiftStore bean, child) {
                            return Visibility(
                           
                            );
                          })
  • 如何更新呢

        Provider.of<GiftStore>(context, listen: false).update(false);

以上是关于Flutter Provider的使用的主要内容,如果未能解决你的问题,请参考以下文章

Flutter之跨组件状态共享Provider剖析

Flutter之跨组件状态共享Provider剖析

将 Provider 3 转换为 4 后 Flutter 应用程序崩溃

Flutter Provider源码分析

使用 FutureBuilder 和 Provider 在 Flutter 中出现错误状态没有元素

使用 geolocator 和 provider 以及 flutter_maps 获取位置