h***@163.com
h***@163.com
  • 发布:2020-03-10 17:35
  • 更新:2020-04-14 10:36
  • 阅读:5981

【报Bug】回调函数里面使用 uni.showToast 不生效

分类:uni-app

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]回调方法里面使用 uni.showToast 不生效

重现步骤

[步骤]

function httpGet(url, data, callBack) {  
	uni.showLoading({  
		title: '加载中'  
	});  
	wx.request({  
		url: url,  
		data: data,  
		method: "GET",  
		success: function(res) {  
			callBack(res.data);  
		},  
		fail: function(res) {  
			uni.showToast({  
				title: res.errMsg,  
				icon: 'fail',  
				duration: 2000  
			});  
		},  
		error: function(res) {},  
		complete: function(res) { // complete  
			uni.hideLoading();  
		}  
	});  
}  
  
在页面调用该方法: 返回callback方法的时候   uni.showToast 不会显示  
this.httpGet(app.globalData.getUrl(app.globalData.$httpApi.member.updateQRCodeIsuse), sendData,this.updateCallback)  
  
updateCallback: function(res) {  
				if (res.success) {	  
					console.log(123,res);  
					 // app.globalData.showmsg(res.msg,'success')  
					 //app.globalData.onShow('开启成功');  
					 uni.showToast({  
					 	icon:"none",  
						content:'开启成功'  
					 });  
					 uni.hideToast();  
					   
				} else {  
					//e.target.value = !e.target.value;  
					uni.showLoading({  
						title: res.msg  
					})  
					this.loadData();  
				}  
			   
			},  
[结果]

不显示效果
[期望]
显示消息
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]
HBuilderX 2.6.1
[IDE版本号]

[windows版本号]

[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]
app安卓5.1.1
[运行端版本号]

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
HBuilderX
[编译模式是老模板模式还是新的自定义组件模式?]

App运行环境说明

[Android版本号]
5.1.1
[iOS版本号]

[手机型号]
oppo
[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]
674934275

2020-03-10 17:35 负责人:无 分享
已邀请:
不烧不专业

不烧不专业

官方不用沉浸在“ APICloud终于承认侵权并向DCloud道歉了”之类的情景了,赶紧解决下bug吧!

  • DCloud_UNI_GSQ

    文档有说明:showToast 和 showLoading 是底层同一个(按的小程序的设计),所以 .showToast 和 showLoading 会相互覆盖,而 hideLoading 也会关闭 showToast 。

    冲突解决方案:

    App:使用 plus.nativeUI.toast 接口

    非App:其中一个使用自定义组件实现。


    2020-04-14 10:36

3***@qq.com

3***@qq.com

确实是这样的

不烧不专业

不烧不专业

我也遇到这样的问题,希望官方看看。

g***@tocs.cn

g***@tocs.cn - shonve

我也遇到过,我是js文件里面调用不显示消息。暂时可以用plus.nativeUI.toast来代替。

g***@tocs.cn

g***@tocs.cn - shonve

let html = '<font style="font-size:14px">' + message + '</font>'  
		plus.nativeUI.toast(html, {  
			type: 'richtext',  
			duration: 'long',  
			richTextStyle: {  
				align: 'center'  
			},  
			verticalAlign: 'center'  
		});
喜欢技术的前端

喜欢技术的前端 - QQ---445849201

uni.showToast({
icon:"none",
title:'开启成功'
});

喜欢技术的前端

喜欢技术的前端 - QQ---445849201

content换成title试试

DCloud_UNI_GSQ

DCloud_UNI_GSQ

showToast 和 showLoading 是底层同一个(按的小程序的设计),所以 .showToast 和 showLoading 会相互覆盖,而 hideLoading 也会关闭 showToast 。
冲突解决方案:
App:使用 plus.nativeUI.toast 接口
非App:其中一个使用自定义组件实现。

  • g***@tocs.cn

    难怪,我说怎么有些地方总是显示不出来,这个要在文档里面说明一下呀!


    2020-04-14 10:50

  • DCloud_UNI_GSQ

    回复 g***@tocs.cn: 啊,有说明。


    2020-04-14 11:08

  • DCloud_UNI_GSQ

    这段话就是从文档复制来的


    2020-04-14 11:09

  • g***@tocs.cn

    回复 DCloud_UNI_GSQ: 额...在hideLoading那里,没看到,建议在showToast那里也重复显示一下吧,因为hideLoading方法名太直白,可能很多人不会仔细看这个hideLoading的文档


    2020-04-14 11:34

  • DCloud_UNI_GSQ

    回复 g***@tocs.cn: 好的


    2020-04-14 12:41

  • 3***@qq.com

    确实,我先调 uni.showToast 提示错误,如果没有错误进行计算时用 uni.showLoading 加载过度就会出现不显示


    2021-10-15 18:10

该问题目前已经被锁定, 无法添加新回复