uniapp 页面显示时开启定时,页面不显示时清除定时

页面显示时开启定时,页面不显示时清除定时

在这里插入图片描述

显示二维码的时候需要一个定时器一分钟刷新一次,离开当前页面后定时器还在执行如何清除定时器?上代码

<template>
 <view class="code">
	 <view class="code-box">
		 <view class="code-img-box">
			<uqrcode ref="uqrcode" canvas-id="qrcode" :value="codeSn"></uqrcode>
		</view>
		 <view class="refresh-box">
			 <text class="tips">每分钟自动刷新二维码</text>
			 <text class="refresh-btn" @tap="getReservationQrCode()">手动刷新</text>
		 </view>
		</view>
	</view>
</template>
<script>
	export default {
		data() {
			return {
				data: {},
				    timer: "",
				    codeSn: ""
			       }
	    	   },
	    	   setTime
	    	   onLoad() {
					//定时器
					this.setTime()
		       },
	    	   methods: {
                 setTime() {
					//每隔一分钟刷新一次二维码方法
					this.timer = setInterval(() => {
						console.log("每分钟执行一次")
						this.getReservationQrCode();
					 }, 60000)
		    	},
		        //获取二维码
		        getReservationQrCode() {
				let routes = getCurrentPages(); // 获取当前打开的页面路由数组
				let curRoute = routes[routes.length - 1].route //获取当前页面路由
				// 判断当前显示的页面是否是 二维码显示页面 ,是当前页面便刷新二维码,否则清空定时器
				if (curRoute != 'pages/wdyy/detail') {
					clearInterval(this.timer); // 清除定时器
					this.timer = ""
					return false
				}
				var obj = {
					//参数
				}
				//获取二维码接口
				this.$http.post(接口地址).then(res => {
					uni.hideLoading()
					if (res.code == 200) {
						//获取二位密码数据
						if (res.data.codeSn) {
							this.codeSn = res.data.codeSn
						}

					} else {
						uni.showToast({
							title: res.msg,
							icon: 'error'
						})
					}
				}).catch(e => {
					uni.showToast({
						title: e.msg,
						icon: 'error'
					})
				})
		       },
	    	   }
		   }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值