首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Provider进行颤动状态管理

使用Provider进行颤动状态管理
EN

Stack Overflow用户
提问于 2019-05-20 17:35:31
回答 1查看 2.2K关注 0票数 5

我有一个简单的Provider类:

代码语言:javascript
复制
import 'package:flutter/foundation.dart';

class AppState with ChangeNotifier {
  bool _isLoggedIn = false;
  bool get isLoggedIn => _isLoggedIn;

  set isLoggedIn(bool newValue) {
    _isLoggedIn = newValue;
    notifyListeners();
  }
}

在登录类中,如果登录成功,我会将isLoggedIn设置为true:

代码语言:javascript
复制
 void _signInWithEmailAndPassword(appState) async {
    try {
      final FirebaseUser user = await _auth.signInWithEmailAndPassword(
        ...
      );

      if (user != null) {
        appState.isLoggedIn = true;
        appState.userData = user.providerData;
        ...
      }
    } catch (e) {
      setState(() {
        _errorMessage = e.message;
      });
    }
  }

按下Android上的后退按钮,用户即使在成功登录后也可以返回到此页面。所以我想知道在Widget build之前是否可以访问Provider.of,如果isLoggedIntrue,是否可以重定向用户。

现在我有了一些类似的东西:

代码语言:javascript
复制
@override
  Widget build(BuildContext context) {
    final appState = Provider.of<AppState>(context);
...

这只是登录视图的一个用例,但我确信此功能可以在其他情况下使用。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56218108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档