Как правильно ждать, пока будущее не будет завершено в дротике - PullRequest
0 голосов
/ 11 февраля 2019

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

1 Ответ

0 голосов
/ 11 февраля 2019

Вы должны получить свою дату из базы данных в функции 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.

...