Junior — Middle
Ar galėtumėte pateikti pavyzdį, kaip savo projekte naudojote FutureBuilder widget'ą?
sobes.tech AI
Atsakymas iš AI
Viename iš mano projektų aš naudoju FutureBuilder, kad asinchroniškai įkeltų duomenis iš serverio ir juos parodytų naudotojo sąsajoje. Pavyzdžiui, įkeliant naudotojų sąrašą iš API:
Future<List<User>> fetchUsers() async {
final response = await http.get(Uri.parse('https://api.example.com/users'));
if (response.statusCode == 200) {
return parseUsers(response.body);
} else {
throw Exception('Nepavyko įkelti naudotojų');
}
}
Widget build(BuildContext context) {
return FutureBuilder<List<User>>(
future: fetchUsers(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
} else if (snapshot.hasError) {
return Text('Klaida: \\${snapshot.error}');
} else if (snapshot.hasData) {
return ListView(
children: snapshot.data!.map((user) => ListTile(title: Text(user.name))).toList(),
);
} else {
return Text('Duomenų nėra');
}
},
);
}
Šis požiūris leidžia patogiai valdyti įkėlimo būsenas ir rodyti UI priklausomai nuo asinchroninės operacijos rezultato.