Junior — Middle
Vai jūs varētu sniegt piemēru, kā jūs izmantojāt FutureBuilder widget jūsu projektā?
sobes.tech AI
Atbilde no AI
Vienā no maniem projektiem es izmantoju FutureBuilder, lai asinhroni ielādētu datus no servera un parādītu tos lietotāja saskarnē. Piemēram, ielādējot lietotāju sarakstu no 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('Neizdevās ielādēt lietotājus');
}
}
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('Kļūda: \\${snapshot.error}');
} else if (snapshot.hasData) {
return ListView(
children: snapshot.data!.map((user) => ListTile(title: Text(user.name))).toList(),
);
} else {
return Text('Nav datu');
}
},
);
}
Šī pieeja ļauj ērti pārvaldīt ielādes stāvokļus un parādīt UI atkarībā no asinhronās operācijas rezultāta.