uni-app uni.showLoading 无法隐藏
uni-app uni.showLoading 无法隐藏
详细问题描述
(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
[内容]
重现步骤
[步骤]
代码封装
封装uni.request ajax请求
function xxx_Ajax(option){
// debugger;
var url = option.url;
var data = XXXAPI.isEmpty(option.data) ? {} : option.data;
var header = XXXAPI.isEmpty(option.header) ? {} : option.header;
header['content-type'] = XXXAPI.isEmpty(header['content-type']) ? 'application/json' : header['content-type'];
var method = XXXAPI.isEmpty(option.method) ? 'POST' : option.method; //默认POST
var dataType = XXXAPI.isEmpty(option.dataType) ? 'json' : option.dataType; //默认json
var responseType = XXXAPI.isEmpty(option.responseType) ? 'text' : option.responseType; //默认text
uni.showLoading({
title: '正在加载',
mask:true
});
uni.request({
url: url,
method: method,
data: data,
header: header,
dataType : dataType,
responseType : responseType,
success: res => {
//隐藏
uni.hideLoading();
var resObj = {};
resObj['errMsg'] = res['errMsg'];
resObj['statusCode'] = res['statusCode'];
resObj['header'] = res['header'];
var resData = res.data;
//成功执行回调函数
if(typeof(option.success) == 'function'){
option.success(resObj);
}
}
},
fail: () => {
//隐藏
uni.hideLoading();
if(typeof(option.fail)=='function'){
option.fail();
}
},
complete: () => {
if(typeof(option.complete)=='function'){
option.complete();
}
}
});
[结果]
[期望]
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]
IDE运行环境说明
环境 | 说明 |
---|---|
IDE | HBuilderX |
IDE版本号 | 2.1.0.20190713 |
windows版本号 | windows 10专业版 |
uni-app运行环境说明
运行环境 | 说明 |
---|---|
运行端 | h5 |
运行端版本号 | google chrome 版本 72.0.3626.121(正式版本) (64 位) |
App运行环境说明
环境 | 说明 |
---|---|
Android版本号 | - |
iOS版本号 | - |
手机型号 | - |
模拟器型号 | - |
联系方式
[QQ] 529191272
更多关于uni-app uni.showLoading 无法隐藏的实战教程也可以访问 https://www.itying.com/category-93-b0.html
同样是用这样的写法,不可能有这样的问题 点我试试这个
更多关于uni-app uni.showLoading 无法隐藏的实战教程也可以访问 https://www.itying.com/category-93-b0.html
我哪怕先写showLoading 然后hideLoading 也会出现这个问题,今天IDE升级之前还没存在这个问题,升级之后就有这个问题了。
检查回调有没有执行,反正我刚试,uni.hideloading没问题
我哪怕先写showLoading 然后hideLoading 也会出现这个问题,今天IDE升级之前还没存在这个问题,升级之后就有这个问题了。
回复 wfighting: 你浏览器是什么,我怀疑跟浏览器版本有问题
没有复现到问题,检查是不是执行多个 showLoading ,如果都没问题,提供一个 demo ,我用你的 demo 复现一下。
我找到问题了 一个界面出现两次请求 可能导致冲突, 那这个有木有好的解决方法
回复 wfighting: 没有什么好的解决方案,自己控制 showLoading 和 hideLloading 的时机就好
我也遇到这问题,只执行一次showLoading,回调后也执行一次hideLloading,结果也没隐藏。而且还是随机出现这问题,有时候隐藏,有时候无法隐藏。主要是在h5有这问题,小程序没有
我也遇到了,我在使用uni.request之前调用showloading,然后在complete中调用hideloading会出现先执行hideloading后执行showloading的情况,升级2.1.1版本后出现的
我也遇到这样的问题,在H5端 showLoading调用后再调用hideLoading,loading框不关闭,打了日志没有调过重复的showLoading,在小程序端没有问题,请问你们解决了吗?
根据问题描述,uni.showLoading无法隐藏的问题可能由以下几个原因导致:
- 请求回调结构错误:您的uni.request的回调函数结构存在问题,fail和complete回调应该放在uni.request的参数对象内部,而不是作为同级参数。正确的结构应该是:
uni.request({
url: url,
// 其他参数...
success: (res) => {
uni.hideLoading();
// 成功处理
},
fail: (err) => {
uni.hideLoading();
// 失败处理
},
complete: () => {
// 完成处理
}
});