Sobes.tech
Junior — Middle

Kunt u een voorbeeld geven van hoe u de widget FutureBuilder in uw project hebt gebruikt?

sobes.tech AI

Antwoord van AI

In een van mijn projecten heb ik FutureBuilder gebruikt om gegevens asynchroon vanaf de server te laden en deze weer te geven in de gebruikersinterface. Bijvoorbeeld bij het laden van een lijst met gebruikers van een 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('Laden van gebruikers mislukt');
  }
}

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('Fout: \\${snapshot.error}');
      } else if (snapshot.hasData) {
        return ListView(
          children: snapshot.data!.map((user) => ListTile(title: Text(user.name))).toList(),
        );
      } else {
        return Text('Geen gegevens');
      }
    },
  );
}

Deze aanpak maakt het gemakkelijk om laadstatussen te beheren en de UI weer te geven op basis van het resultaat van de asynchrone operatie.