Junior
Kas ir FutureBuilder Flutter?
sobes.tech AI
Atbilde no AI
Lietotāja saskarnes būvētājs, kas balstīts uz asinhroniem datiem, kas iegūti no Future.
Galvenie parametri:
future: novērojamsFutureinstances.initialData: Dati, kas tiek rādīti pirmsfuturepabeigšanas.builder: Funkcija (AsyncWidgetBuilder), kas tiek izsaukta katru reizi, mainotiesfuturestāvoklim, un saņemBuildContextunAsyncSnapshot.
AsyncSnapshot stāvokļi:
ConnectionState.none:Futurevēl nav uzsākts.ConnectionState.waiting:Futuretiek izpildīts.ConnectionState.active: (Retāk)Futureir atgriezis starpposma datus.ConnectionState.done:Futureir pabeigts (sekmīgi vai ar kļūdu).
Piemērs lietošanai:
// Pieņemsim, mums ir funkcija, kas atgriež `Future<String>`
Future<String> fetchData() async {
await Future.delayed(Duration(seconds: 2)); // Tīkla pieprasījuma imitācija
return "Dati ielādēti!";
}
// ... widgeta `build` metodē:
@override
Widget build(BuildContext context) {
return FutureBuilder<String>(
future: fetchData(), // Mūsu `Future`
builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
// Rādām ielādes indikatoru, kamēr `Future` tiek izpildīts
return CircularProgressIndicator();
} else if (snapshot.hasError) {
// Rādām kļūdas ziņojumu, ja `Future` beidzās ar kļūdu
return Text('Kļūda: ${snapshot.error}');
} else {
// Rādām datus, ja `Future` veiksmīgi pabeigts
return Text('Rezultāts: ${snapshot.data}');
}
},
);
}
Priekšrocības:
- Vienkāršo darbu ar asinhronām operācijām UI.
- Automātiski pārveido UI, mainoties
Futurestāvoklim. - Skaidri atdala datu ielādes un UI būvniecības loģiku.
Trūkumi:
- Var radīt liekas pārkrāsošanas, ja
Futuretiek radītsbuildmetodē. IeteicamsFutureradīt vienu reizi (piemēram,initState).