【发布时间】:2019-05-20 09:35:30
【问题描述】:
我有一个简单的Provider 类:
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:
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上按下后退按钮可以让用户在成功登录后返回此页面。所以我想知道Provider.of是否可以在Widget build之前访问,如果isLoggedIn是true,则重定向用户.
现在我有类似的东西:
@override
Widget build(BuildContext context) {
final appState = Provider.of<AppState>(context);
...
这只是登录视图的一个用例,但我确信此功能可以用于其他情况。
【问题讨论】:
标签: flutter