Junior
Mis on FutureBuilder Flutteris?
sobes.tech AI
Vastus AI-lt
Kasutajaliidese koostaja, mis põhineb asünkroonsetel andmetel, mis saadakse Future kaudu.
Peamised parameetrid:
future: jälgitavFuturenäide.initialData: Andmed, mis kuvatakse ennefuturelõpetamist.builder: Funktsioon (AsyncWidgetBuilder), mis kutsutakse iga kord, kuifutureolek muutub ning saabBuildContextjaAsyncSnapshot.
AsyncSnapshot olekud:
ConnectionState.none:Futurepole veel alustanud.ConnectionState.waiting:Futureon töös.ConnectionState.active: (Harva)Futureon tagastanud vaheandmed.ConnectionState.done:Futureon lõpetatud (õnnestunult või veaga).
Kasutusnäide:
// Oletame, et meil on funktsioon, mis tagastab `Future<String>`
Future<String> fetchData() async {
await Future.delayed(Duration(seconds: 2)); // Võrgu päringu imitatsioon
return "Andmed on laetud!";
}
// ... widgeti `build` meetodis:
@override
Widget build(BuildContext context) {
return FutureBuilder<String>(
future: fetchData(), // Meie Future
builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
// Kuvame laadimisindikaatori, kuni Future töötab
return CircularProgressIndicator();
} else if (snapshot.hasError) {
// Kuvame veateate, kui Future lõppes veaga
return Text('Viga: ${snapshot.error}');
} else {
// Kuvame andmed, kui Future on edukalt lõpetatud
return Text('Tulemus: ${snapshot.data}');
}
},
);
}
Eelised:
- Lihtsustab töö asünkroonsete operatsioonidega UI-s.
- Automaatselt uuendab UI, kui
Futureolek muutub. - Selgelt eristab andmete laadimise ja UI ehitamise loogika.
Miinused:
- Võib põhjustada liigseid uuendusi, kui
Futureluuaksebuildmeetodi sees. Soovitatav onFutureluua üks kord (näiteksinitState-is).