在我的flutter应用程序中,我检查是否有用户登录。我的问题是,即使有用户登录,它也会显示登录页面一段时间,然后跳转到主页。我该如何阻止呢?
最佳答案
您需要确保在调用runApp()
之前已进行了初始化。在变量中声明initialRoute
,以便您可以根据用户是否登录来更改它。
另外,您必须调用WidgetsFlutterBinding.ensureInitialized()
才能等到处理完成,然后将main
方法声明为async
。
像这样:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
var initialRoute = 'login';
var isUserLoggedIn = await User.IsUserLoggedIn();
if (isUserLoggedIn) {
initialRoute = 'home';
}
runApp(MyApp(initialRoute: initialRoute));
}
class MyApp extends StatelessWidget {
final String initialRoute;
MyApp({@required this.initialRoute});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
initialRoute: initialRoute,
routes: {
'login': (context) => LoginPage(),
'home': (context) => HomePage(),
}
);
}
}
在看到启动画面时,将完成对
runApp
调用之前发生的所有操作。