переменная состояния.

я есть приложение, в котором я должен проверить состояние входа в систему при запуске приложения и вызвать соответствующий экран.

Код, используемый для запуска приложения:

class MyApp extends StatefulWidget {
  @override
  MyAppState createState() {
    return new MyAppState();
  }
}


class MyAppState extends State<MyApp> {

bool isLoggedIn;

    Future<bool> getLoginState() async{
      SharedPreferences pf =  await SharedPreferences.getInstance();
      bool loginState = pf.getBool('loginState');
      return loginState;
      // return pf.commit();
    }

  @override
  Widget build(BuildContext context) {

   getLoginState().then((isAuth){
      this.isLoggedIn = isAuth;
   });


    if(this.isLoggedIn) {return Container(child: Text('Logged In'));}
    else {return Container(child: Text('Not Logged In));}

  }
}

Я могу спастиSharedPreference и получить его здесь, проблема в том, что какgetLoginState() это асинхронная функция,this.isLoggedIn является нулевым к моменту выполнения условия if. Логическое утверждение не выполняется в операторе if, и приложение вылетает.

Как мне убедиться, что переменная boolisLoggedIn используется в условии if имеет значение, когда выполняется оператор if?

Любая помощь будет оценена.

Ответы на вопрос(1)

Ваш ответ на вопрос