Junior — Middle
Pourriez-vous donner un exemple d'utilisation du widget FutureBuilder dans votre projet?
sobes.tech IA
Réponse de l'IA
Dans l’un de mes projets, j’ai utilisé FutureBuilder pour charger de manière asynchrone des données depuis un serveur et les afficher dans l’interface utilisateur. Par exemple, lors du chargement d’une liste d’utilisateurs depuis une 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('Échec du chargement des utilisateurs');
}
}
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('Erreur: \\${snapshot.error}');
} else if (snapshot.hasData) {
return ListView(
children: snapshot.data!.map((user) => ListTile(title: Text(user.name))).toList(),
);
} else {
return Text('Pas de données');
}
},
);
}
Cette approche permet de gérer facilement les états de chargement et d’afficher l’interface utilisateur en fonction du résultat de l’opération asynchrone.