Я хочу обновлять свое приложение с помощью API во флаттере. Как я могу это сделать?..! Мой бэкэнд в MySQL и API в PHP

Я хочу, чтобы мое приложение обновлялось в режиме реального времени с использованием новейших данных API, My API на PHP, MySQL

Мой код выглядит следующим образом

Я перепробовал много методов, но не могу понять,

Мои данные поступают в формате JSON.

Класс BLoC

class Bloc{
  final _repositary = Repository();
  final _userFetcher = PublishSubject<List<UserData>>();

  Observable<List<UserData>> get allUsers => _userFetcher.stream;

  void fetchAllUsers() async {
    List<UserData> userData= await _repositary.fetchAllUsers();
    _userFetcher.sink.add(userData);
  }

  dispose(){
    _userFetcher.close();
  }
}

final bloc=Bloc();

Репозиторий Класс

class Repository{
  final manageUsers = ManageUsersModel();

  Future<List<UserData>> fetchAllUsers() => manageUsers.getData();
}

API Call метод

Future<List<UserData>> getData() async {
    List<UserData> user = new List<UserData>();
    String url = GenerateString.genStringMngUsers();
    var response = await http.get(
      Uri.encodeFull(url),
    );

    List data = jsonDecode(response.body);
      user.add(userData);
    }

    return user;
  }

Мой интерфейс

       StreamBuilder(
            stream: bloc.allUsers,
            builder: (BuildContext context, AsyncSnapshot snapshot) {
              if (snapshot.data == null) {
                return Center(
                 child: CircularProgressIndicator(),
                );
              } else {
                return ListView.builder(
                  itemCount: snapshot.data.length,
                    return UserDetailTile(snapshot.data);
                  },
                );
              }
            },
          ),

0 ответов

Другие вопросы по тегам