Не могу разобраться с построением во flutter
Мой код зависает при загрузке, даже когда проверка входа в систему уже прошла и _loading стал ложным. Скажите, пожалуйста, в чем дело?
class _MainPageState extends State<MainPage> with TickerProviderStateMixin {
@override
initState() {
super.initState();
checkLoginStatus();
}
Future checkLoginStatus() async {
sharedPreferences = await SharedPreferences.getInstance();
if (sharedPreferences.getString('userModel') != null) {
_userModel = UserModel.fromBackEnd(
await json.decode(sharedPreferences.getString('userModel')));
}
if (sharedPreferences.getString('token') == null || _userModel == null) {
Navigator.of(context).pushAndRemoveUntil(
MaterialPageRoute(builder: (BuildContext context) => LoginPage()),
(Route<dynamic> route) => false);
} else {
_loading = false;
}
}
@override
Widget build(BuildContext context) {
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light
.copyWith(statusBarColor: Colors.transparent));
return Scaffold(
body: Container(
color: Colors.black,
child: loading
? Center(child: GFLoader(loaderColorOne: Colors.red))
: ListView(children: <Widget>[
profileInfoSection(),
SizedBox(height: 15.0),
menuSection(),
SizedBox(height: 15.0),
bottomSection()
])),
Это часть моего кода. _checkLoginStatus проверяет запись токена и модели пользователя, а если таковых нет, бросает ее на авторизацию. Я хотел бы отображать загрузку до тех пор, пока не получу все данные, и только после этого показывать основную область приложения.
Если удалить фрагмент кода
if (sharedPreferences.getString('userModel') != null) {
_userModel = UserModel.fromBackEnd(
await json.decode(sharedPreferences.getString('userModel')));
}
Значок загрузки исчезает