Ниже мой код: .dart файл
@override
Widget build(BuildContext context) {
bloc.fetchUserTypevalue();
return Scaffold(
body: FutureBuilder(
**future: bloc.usertype,** // This is problematic line because bloc.usertype is <Observable<Future>> and this wants future in return.
builder: (context, AsyncSnapshot<
UserTypeWithUserResponse> snapshot){
if(snapshot.hasData){
return buildList(snapshot);
}else if(snapshot.hasError){
print("error == > " +snapshot.error);
return Text(snapshot.error.toString());
}
return Center(child: CircularProgressIndicator());
}
)
);
}
Blo c .dart файл
class UserTypeBloc {
final _repository = Repository();
final _usertypeFetcher = PublishSubject<Future<UserTypeWithUserResponse>>();
Observable<Future<UserTypeWithUserResponse>> get usertype => _usertypeFetcher.stream;
fetchUserTypevalue() async {
Future<UserTypeWithUserResponse> itemModel = await _repository.fetchusertypeRep();
_usertypeFetcher.sink.add(itemModel);
}
dispose() {
_usertypeFetcher.close();
}
}
Репозиторий: fetchusertypeRep () => ApiProviderObj.fetchusertype ();
.dart файл для вызова API:
Future<UserTypeWithUserResponse> fetchusertype() async {
var api_instance = new ApiClient();
authToken = "XYZ";
UserTypeWithUserResponse responsevalue;
defaultApiClient.getAuthentication<OAuth>('BearerAuth')
..accessToken = authToken;
try {
new UserTypeApi(defaultApiClient).userTypeGet().then((responsevalue) {
return responsevalue;
});
} catch (error) {
throw Exception('error fetching user');
};
}
Проблема: future: blo c .usertype,
Я хотел пользователя futurebuilder но я не могу использовать его в blo c.