Sobes.tech
Junior — Middle

შეგიძლიათ თქვენი პროექტში FutureBuilder ვიჯეტის გამოყენების მაგალითი მოგვაწოდოთ?

sobes.tech AI

პასუხი AI-სგან

ჩემი ერთ-ერთი პროექტში მე გამოვიყენე FutureBuilder სერვერიდან ასინქრონული მონაცემების ჩატვირთვა და მათი ინტერფეისში ჩვენება. მაგალითად, 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('მომხმარებლების ჩატვირთვა ვერ მოხერხდა');
  }
}

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('შეცდომა: \\${snapshot.error}');
      } else if (snapshot.hasData) {
        return ListView(
          children: snapshot.data!.map((user) => ListTile(title: Text(user.name))).toList(),
        );
      } else {
        return Text('მონაცემები არ არის');
      }
    },
  );
}

ეს მიდგომა საშუალებას აძლევს ადვილად მართოთ ჩატვირთვის მდგომარეობები და UI-ს გამოაჩინოთ ასინქრონული ოპერაციის შედეგზე დაყრდნობით.