uni-app警告 “请注意 showLoading 与 hideLoading 必须配对使用”
uni-app警告 “请注意 showLoading 与 hideLoading 必须配对使用”
在请求数据的时候使用 uni.showLoading
,数据请求完毕也使用了 uni.hideLoading
,但是一直警告 “请注意 showLoading 与 hideLoading 必须配对使用”。
我也是,用了hide还是警告,看着一片黄,很不舒服
强迫症,哈哈,我也是搜索【 [system] 请注意 showToast 与 hideToast 必须配对使用】过来的。
提示是检测使用的show与hide是否成对得出的,目的是避免出现问题。
如检查无问题,可以忽略。
4月5月的时候是没有这个这个问题的 这个是可以忽略 但是在控制台很难看
显示这个没有意义
comolete中调用的,uni-app好像检测不出来
那是因为,你在请求之前调用的uni.showLoading,是在主线程里,而请求接口大多数是子线程,子线程里它找不到主线程的uni.showLoading,而主线程里它同样找不到子线程的uni.hideLoading
应该是这样…
哦还有一个可能就是,你在uni.hideLoading和uni.showLading之间又用了uni.showToast等uni的弹窗封装组件,导致在uni.hideLoading之前已经关闭了弹窗
回复 三片创可贴: 真相了,我就是请求完全结束前调用了uni.showToast提示了加载“加载成功”之类的字眼,所以导致uni.hideLoading没有被调用是这个意思吗大哥?
回复 三片创可贴: 有没有解决呢
都2023了还没解决 逼死强迫症
哈哈,我也是搜索“[system] 请注意 showLoading 与 hideLoading 必须配对使用”过来看的!这么早的问题了,怎么一直到现在还存在?怎么解决呀?
都2025了还没解决,不用解决了
因为showLoading和showToast使用的同一个实例,当你使用showLoading之后直接调用showToast就会提示这个了,如果想要避免提示就必须在showToast之前调用hideLoading
因为showLoading和showToast使用的同一个实例
在uni-app开发中,showLoading
和hideLoading
是用于显示和隐藏加载提示框的API。如果这两个API没有正确配对使用,就可能导致加载提示框无法正常消失,从而影响用户体验。为了确保showLoading
和hideLoading
的配对使用,我们通常会在显示加载提示框后立即进行某个操作(如网络请求),并在操作完成后隐藏加载提示框。
以下是一个简单的代码示例,展示了如何在uni-app中正确配对使用showLoading
和hideLoading
:
// 假设我们有一个页面,需要在页面加载时发送一个网络请求,并显示加载提示框
Page({
onLoad: function() {
// 显示加载提示框
uni.showLoading({
title: '加载中...',
mask: true // 是否显示透明蒙层,防止触摸穿透
});
// 发送网络请求
uni.request({
url: 'https://api.example.com/data', // 替换为你的API地址
method: 'GET',
success: (res) => {
// 请求成功,处理返回的数据
console.log('请求成功:', res.data);
// 隐藏加载提示框
uni.hideLoading();
// 更新页面数据
this.setData({
data: res.data
});
},
fail: (err) => {
// 请求失败,处理错误
console.error('请求失败:', err);
// 隐藏加载提示框,并显示错误信息
uni.hideLoading();
uni.showToast({
title: '请求失败,请稍后再试',
icon: 'none'
});
}
});
}
});
在这个示例中,我们在页面加载时首先调用uni.showLoading
显示加载提示框,然后发送一个网络请求。网络请求的回调函数中,无论请求成功还是失败,都会调用uni.hideLoading
来隐藏加载提示框。这样就确保了showLoading
和hideLoading
的配对使用。
此外,为了避免因异常或错误导致hideLoading
没有被调用,我们可以在页面的onUnload
或onError
生命周期函数中添加额外的hideLoading
调用,以确保在页面卸载或发生错误时也能隐藏加载提示框。但请注意,这种做法应谨慎使用,因为它可能会隐藏掉因其他原因正在显示的加载提示框。
onUnload: function() {
uni.hideLoading(); // 页面卸载时隐藏加载提示框(谨慎使用)
},
onError: function(err) {
console.error('页面错误:', err);
uni.hideLoading(); // 页面发生错误时隐藏加载提示框(谨慎使用)
}