Junior — Middle
¿Podrías dar un ejemplo de cómo has utilizado el widget FutureBuilder en tu proyecto?
sobes.tech AI
Respuesta de la IA
En uno de mis proyectos, utilicé FutureBuilder para cargar datos de forma asíncrona desde un servidor y mostrarlos en la interfaz. Por ejemplo, al cargar una lista de usuarios desde una 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('Error al cargar usuarios');
}
}
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('Error: \\${snapshot.error}');
} else if (snapshot.hasData) {
return ListView(
children: snapshot.data!.map((user) => ListTile(title: Text(user.name))).toList(),
);
} else {
return Text('No hay datos');
}
},
);
}
Este enfoque permite gestionar cómodamente los estados de carga y mostrar la interfaz de usuario en función del resultado de la operación asíncrona.