flutter 写一个通用方法,通过回调返回数据
2023-12-13 06:26:57
//先获取数据,设置回调
///获取好友资料
getUserArchivesInfo(int? userId,
{Function(bool isCache, ArchivesInfo archivesInfo)? onSuccess,
Function(String error)? onError}) {
RxHttp<ArchivesInfo>()
..init()
..setBaseUrl(Api.BASE_API)
..setPath(Api.GET_OTHER_ARCHIVES_INFO)
..setCacheMode(CacheMode.FIRST_CACHE_THEN_REQUEST)
..setParams({"user_id": userId})
..setJsonTransFrom((data) {
PrintUtil.prints('$TAG 获取好友资料 ===> $data');
return ArchivesInfo.fromJson(json.decoder.convert(data)['data']);
})
..call(
NetCallback(onNetFinish: (archivesInfo) {
if (onSuccess != null) {
CacheFileString().loadStringAsync(archivesInfo.avatar ?? '');
CacheFileString().loadStringAsync(archivesInfo.avatarThumb ?? '');
archivesInfo.userIMID = '${archivesInfo.userID}';
archivesInfo.conversationID = 'c2c_${archivesInfo.userID}';
onSuccess(false, archivesInfo);
}
}, onCacheFinish: (archivesInfo) {
if (onSuccess != null) {
onSuccess(true, archivesInfo);
}
}, onNetError: (errorCode, error) {
if (onError != null) {
onError('$error ($errorCode)');
}
}),
server: Servers.microServices);
}
//在回调处处理数据和刷新页面
///获取好友的档案资料
_getOtherArchivesInfo() {
WsImUserInfoUtil().getUserArchivesInfo(int.parse(userID),
onSuccess: (isCache, archivesInfo) {
if (!isCache) {
WsImDBUtil().updateUserInfo('c2c_$userID', archivesInfo, false);
}
print('回调了多少次');
setOtherArchivesInfo(archivesInfo);
}, onError: (error) {
showToast(error);
});
}
//处理数据的方法
setOtherArchivesInfo(data) {
mySetState(() {
// archivesInfo = ArchivesInfo.fromJson(data);
archivesInfo = data;
String photoIds = '';
String videoIds = '';
if (archivesInfo != null) {
if (archivesInfo!.photos != null) {
for (int i = 0; i < archivesInfo!.photos!.length; i++) {
if (i == archivesInfo!.photos!.length - 1) {
photoIds += '${archivesInfo!.photos![i].photoId}';
} else {
photoIds += '${archivesInfo!.photos![i].photoId},';
}
}
}
if (archivesInfo!.videos != null) {
for (int i = 0; i < archivesInfo!.videos!.length; i++) {
if (i == archivesInfo!.videos!.length - 1) {
videoIds += '${archivesInfo!.videos![i].videoId}';
} else {
videoIds += '${archivesInfo!.videos![i].videoId},';
}
}
}
}
if (photoIds != '') {
_getPhotoState(archivesInfo!.photos!, photoIds);
}
if (videoIds != '') {
_getVideoState(archivesInfo!.videos!, videoIds);
}
});
}
文章来源:https://blog.csdn.net/weixin_44911775/article/details/134940854
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!