【发布时间】:2021-01-26 12:01:28
【问题描述】:
我最近一直在开发一个应用程序。我想检查用户是否已登录并在我的应用程序加载时得到验证。所以我创建了一个 Wrapper 类来检查用户是否登录并通过验证。然后相应地我会向他们显示登录屏幕或主屏幕。
我在 Main.dart 中分配了 home : Wrapper()。
之后我将包装类作为
class Wrapper extends StatelessWidget {
@override
Widget build(BuildContext context) {
final user = Provider.of<User>(context);
// checking if there is user and the user is verified
bool _isAuth() {
if (user != null && user.isVerified) {
return true;
}
return false;
}
return _isAuth() ? MainScreen() : Authenticate();
}
}
这工作正常,但问题是它首先闪烁登录页面,然后如果用户已登录并经过验证,它会将我带到主页,但如果用户未登录,它就可以正常工作see gif image here
【问题讨论】:
-
你使用 bloc 吗?
-
其实没有。我对此一无所知..我想我必须看看它。
-
是的,在大项目中它非常有帮助,如果你想学习它,谷歌推荐它使用 bloc 包(稍微不那么复杂,它的代码是可以理解的)并学习 bloc 包的使用这个网站bloclibrary.dev/#你可以做你上面提到的,没有错误,很容易使用 bloc
-
感谢您的建议。我只有一个查询。我现在可以在我的项目中使用它还是我完全需要更改项目的结构?
-
它(bloc)需要时间来理解它需要自己的更改和属性(通常每个部分需要 30 或 40 行代码)但是当你这样做时你会熟悉它并从那一刻对您来说很容易,并且很容易将其放入应用程序中,只需 1 或 2 行代码即可在应用程序中使用它
标签: flutter authentication dart flutter-layout