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


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