Junior
Flutter-də FutureBuilder nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Asinxron məlumatlar əsasında interfeys qurmaq üçün widget, Future əsasında.
Əsas parametrlər:
future: Nəzarət ediləcəkFuturenümunəsi.initialData:futuretamamlanmadan əvvəl göstərilən məlumatlar.builder: (AsyncWidgetBuilder) hərfuturevəziyyətində çağırılan vəBuildContextvəAsyncSnapshotalan funksiya.
AsyncSnapshot vəziyyətləri:
ConnectionState.none: Future hələ başlamayıb.ConnectionState.waiting: Future icra olunur.ConnectionState.active: (Nadir) Future müvəqqəti məlumatlar qaytardı.ConnectionState.done: Future tamamlandı (uğurlu və ya xəta ilə).
İstifadə nümunəsi:
// Tutaq ki, bizdə `Future<String>` qaytaran funksiya var
Future<String> fetchData() async {
await Future.delayed(Duration(seconds: 2)); // Şəbəkə sorğusunun simulasyonu
return "Məlumatlar yükləndi!";
}
// ... widgetin build metodunda:
@override
Widget build(BuildContext context) {
return FutureBuilder<String>(
future: fetchData(), // Bizim Future
builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
// Future işləyərkən yükləmə göstəricisi göstəririk
return CircularProgressIndicator();
} else if (snapshot.hasError) {
// Future xəta ilə bitərsə, xəta mesajı göstəririk
return Text('Xəta: ${snapshot.error}');
} else {
// Future uğurla tamamlandıqda məlumatları göstəririk
return Text('Nəticə: ${snapshot.data}');
}
},
);
}
Üstünlüklər:
- UI-də asinxron əməliyyatların idarə olunmasını asanlaşdırır.
Future-in vəziyyəti dəyişdikcə UI avtomatik yenidən qurulur.- Məlumatların yüklənməsi və UI quruluşunun loqikasını aydın şəkildə ayırır.
Çatışmazlıqlar:
buildmetodunda yaradılanFuturelazımsız yenidən qurmalara səbəb ola bilər.Future-u bir dəfə yaratmaq (məsələn,initState-də) tövsiyə olunur.