Как правильно дождаться завершения будущего в дартс

В моем приложении, созданном с помощью Flutter, есть небольшая ошибка: когда пользователь вошел в систему, он извлекает информацию о пользователе из моей базы данных, но недостаточно быстро и вызывает визуальную ошибку в моем интерфейсе приложения. В приложении есть макеты, в которых используется информация о пользователе (имя, местоположение и изображение), и оно загружается недостаточно быстро. Мне было интересно, есть ли способ дождаться завершения моего будущего, и как только это будет сделано, он сможет без проблем перейти к интерфейсу пользователя.

да - использовать FutureBuider - для периода ожидания - показать элемент загрузки.

anmol.majhail 11.02.2019 17:01
Асинхронная передача данных с помощью sendBeacon в JavaScript
Асинхронная передача данных с помощью sendBeacon в JavaScript
В современных веб-приложениях отправка данных из JavaScript на стороне клиента на сервер является распространенной задачей. Одним из популярных...
1
1
3 050
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны получить свою дату из базы данных в функции initState(), затем вам нужно изменить свой конструктор виджетов, чтобы использовать FutureBuilder, вот пример:

Widget build(BuildContext context) {
return FutureBuilder(
    future: getProfile(),
    builder: (BuildContext context, AsyncSnapshot<SharedPreferences> snapshot) {
      if (snapshot.connectionState == ConnectionState.done){
        return new MaterialApp();
      }
    }
  )
}

обратите внимание, что вы можете заменить AsyncSnapshot<SharedPreferences> типом, который возвращает ваша функция Future.

Другие вопросы по теме