流浪的菜袅 2023-10-24 20:47 采纳率: 77.5%
浏览 542
已结题

uniapp的uni.showLoading不显示

uni.showLoading()不显示,咋回事呀
而且,前面一开始用uni.showToast()的时候,只有提示创建成功的showToast执行了,提示正在创建的showToast就没有执行,这好嘛,我换成showLoading执行啥都不执行了

methods: {
            async login (){
                try {
                    let form = this.form
                    let newForm = Object.assign({},form)
                    let get = await request({url:`/login/get/accnum/${newForm.username}/${newForm.userpwd}`,method:'get'})
                    let token;
                    if(get.msg == 0) {
                        // 未注册,完成账号注册
                        uni.showLoading({
                            title:'正在创建新账号...',
                            mask:true
                        })
                        // uni.showToast({
                        //     title:'正在创建新账号...',
                        //     mask:true,
                        //     image:'/static/favicon.png'
                        // })
                        let post = await request({url:'/login/post/accnum',method:'post',data:newForm})
                        token = post.token
                        uni.setStorageSync('token',token) 
                        uni.hideLoading()
                    } else {
                        // 已有账号,且用户输入的账号密码已正确存在,实现登录
                        // uni.showToast({
                        //     title:'创建成功登录中...',
                        //     mask:true,
                        //     image:'/static/favicon.png'
                        // })
                        uni.showLoading({
                            title:'创建成功登录中...',
                            mask:true
                        })
                        token = get.token
                        uni.setStorageSync('token',token)
                        uni.hideLoading()
                    }
                    
                } catch(err) {
                    console.log(err);
                }
            }
        },
  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-24 23:48
    关注

    【以下回答由 GPT 生成】

    从您提供的代码片段来看,使用uni.showLoading()和uni.showToast()的方式是正确的,并且在正确的位置调用了hideLoading()和hideToast()方法来隐藏加载动画或提示。

    但是,根据您的描述来看,可能是由于某些原因导致无法显示加载动画和正在创建的提示。下面是一些可能导致这个问题的原因和解决方法:

    1. 动画显示时间过短:可能由于加载的耗时操作很短,导致动画显示一闪而过。您可以尝试增加一个延迟来确保加载动画能够显示出来,例如使用setTimeout()方法延迟500毫秒再隐藏加载动画。
    uni.showLoading({
        title: '正在创建新账号...',
        mask: true
    })
    
    setTimeout(() => {
        uni.hideLoading()
    }, 500)
    
    1. 并发操作导致显示异常:如果同时进行多个请求或操作,可能会导致加载动画和提示重叠或无法正常显示。您可以尝试使用Promise.all()方法来确保在所有操作完成后再隐藏加载动画。
    let get = await request({url:`/login/get/accnum/${newForm.username}/${newForm.userpwd}`,method:'get'})
    let post;
    
    if (get.msg == 0) {
        uni.showLoading({
            title: '正在创建新账号...',
            mask: true
        })
    
        post = await Promise.all([request({url:'/login/post/accnum',method:'post',data:newForm}), new Promise(resolve => setTimeout(resolve, 500))])
    }
    
    uni.hideLoading()
    
    1. showLoading()和showToast()方法可能被覆盖或屏蔽:请确保在代码中没有其他地方调用了hideLoading()或hideToast()方法来提前关闭加载动画或提示。

    如果您尝试了上述解决方法后仍然无法显示加载动画和正在创建的提示,建议您检查uniapp的文档或向uniapp的相关社区或技术支持寻求帮助,以确认是否存在其他问题或BUG。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月27日
  • 创建了问题 10月24日