countdownFunc函数最下面的clearInterval的if是永远不会触发的。 上面的setInterval和this.setData都是异步的,你直接在下面判断if (this.data.hourCountdown === 0)肯定不行。
调用setInterval后无法清除?我写了一个倒计时函数,但遇到了设置一个一分钟的倒计时,明明结束后已经00:00了,自动又从59分59秒重新开始倒计时 刚开始学小程序,求大佬指正,下面附上代码: // pages/exercise/exercise.js Page({ /** * 页面的初始数据 */ data: { showSlider:false, showCountDown:false, remainTimeText:'', hourCountdown: 0, countdown: "00:00" }, //打开计时滑动器 showPicker: function() { this.setData({ showSlider: true, showCountDown: false }); }, //“取消”按钮的隐藏计时滑动器 CloseSlider(){ let countdown = this.data.countdown; if(countdown !== 0){ this.setData({ showSlider:false, showCountDown:true }) } else{ this.setData({ showSlider:false }) } }, //“确认”按钮的隐藏计时滑动器 hideSlider() { const hourCountdown = this.data.hourCountdown; // 判断是否存在倒计时,存在则清除 if (this.interval) { clearInterval(this.interval); } this.setData({ showSlider: false, showCountDown: true }); // 更新倒计时初始时间 let countdown = `${hourCountdown.toString().padStart(2, "0")}:00`; this.setData({ countdown: countdown }); // 调用倒计时函数 this.countdownFunc(); }, //设置运动时长 sliderChange(e) { this.setData({ hourCountdown: e.detail.value, }); }, // 倒计时执行函数 countdownFunc() { let hourCountdown = this.data.hourCountdown; let countdown = this.data.countdown.split(":"); let minutes = Number(countdown[0]); let seconds = Number(countdown[1]); this.interval = setInterval(() => { if (hourCountdown > 0 || minutes > 0 || seconds > 0) { if (seconds === 0) { if (minutes > 0) { minutes -= 1; seconds = 59; } else if (hourCountdown > 0) { hourCountdown -= 1; minutes = 59; seconds = 59; } } else { seconds -= 1; } let formattedTime = `${minutes.toString().padStart(2, "0")}:${seconds.toString().padStart(2, "0")}`; this.setData({ hourCountdown: hourCountdown, countdown: formattedTime }); } else { this.setData({ hourCountdown: 0, showCountDown: false }); } }, 1000); // 判断是不是无倒计时,如果是,则清除倒计时 if (this.data.hourCountdown === 0) { clearInterval(this.interval); } }, //自主加分函数 pluspoint(){ wx.showModal({ title: '请输入数字', showCancel: true, cancelText: '取消', confirmText: '确定', editable:true, placeholderText:'1min = 1 分', success: function (res) { if (res.confirm) { var input_value = res.content; // 获取用户输入的数据 if (!isNaN(input_value)) { console.log(input_value); // 打印用户输入的数字 } else { wx.showToast({ title: '请输入正确的数字', icon: 'none' }) } } else if (res.cancel) { console.log('用户点击取消'); } }, fail: function (res) { console.log('弹窗失败'); } }) }, //跳转兑换页面 gotoexchange(e){ wx.navigateTo({ url: '/pages/exchange/exchange', }) }, //将照片发送至邮箱//如果没有服务器或者使用云开发,好像达不到这个功能 undeveloped(){ wx.showToast({ title: '该功能没钱开发', icon: 'error', mask: true }) }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { //获取全局point let point = getApp().globalData.point; this.setData({ point : point }) this.countdownFunc(); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { let point = wx.getStorageSync('point') this.setData({ point:point }) }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ 上到达底部() { }, /** * 用户点击右上角分享 */ 在分享应用消息() { } })
2023-08-15有程序刷新了你的token,注意开发环境和正式环境的争抢,或者CICD不要获取token
{"errcode":40001,"errmsg":"invalid credential, ac?持续出现40001的问题 {"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest, could get access_token by getStableAccessToken, more details at https://mmbizurl.cn/s/JtxxFh33r rid: 64d34b61-10792e30-5bb646a6"}
2023-08-09只是一台安卓有这个问题吗?如果是,可能是安卓蓝牙适配器的状态不对,重启一下手机试试
小程序为什么安卓手机突然使用不了了,什么问题导致的?前两天微信小程序正常使用,突然这两天安卓手机打开小程序时,无法进入蓝牙搜索界面(所有蓝牙设备都没有),苹果手机正常使用,各位大佬帮忙解疑,急!急!急!
2023-08-04这不太现实,因为小程序运行在每个用户的手机上,即使有固定手机用户列表,也不可能固定他们移动网络获取的IP。 可以考虑在有白名单服务器前面搭一个反向代理,如Nginx,这样那个服务器只需要对这个反向代理的IP就行了
如何获取小程序的IP?小程序需要访问有白名单的后台服务器,我需要将小程序的IP添加到白名单里,请问如何获取小程序的固定的一个IP
2023-08-03确实!每次发布,或者添加成员都要麻烦别人来扫码! 强烈建议增加上限!!!
注册小程序时的提示已绑定5个小程序?有没有什么办法解决这个问题啊,一个人只能管理5个小程序,公司又做的小程序这么多,每次都要找别人来帮我,真得是麻了
2023-07-28冷启动:先执行app.js 的onLaunch和onShow,再执行跳转页面的onLoad和onShow 热启动:先执行app.js 的onShow,再执行跳转页面的onLoad和onShow
扫码进入小程序指定页面的逻辑是什么呢?问题一:小程序扫码进入指定页面,是先进入页面后再执行app.js里的逻辑,还是先执行app.js的逻辑,然后再跳转。 问题二:冷启动和热启动会不会影响扫码进入指定页面的逻辑。
2023-07-27我的小程序wx.login都能拿到code呀,你最好加些日志看看为什么会失败
静默获取用户openid,都可以拿到吗?是否有获取不到的情况?我发现,我们的系统在运行中,存在很多时候,静默获取不到用户code的情况,因此也获取不到用户的openid,请问大家是否知道都有什么情况下,是静默获取不到用户openid的情况?
2023-07-26你贴出来的参数少了个 “}”
小程序推送微信公众号模板消息argument invalid?接口名:https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token rid:64b4beaf-15af66a8-0dd0109a [图片] 传的参数 {"character_string2":{"value":"12"},"thing5":{"value":"1"}
2023-07-17文档都明确声明了,你还纠结啥,用code后台再取一下吧,也没多大开销。 现在偷懒用了encryptedData和iv,哪天微信突然禁掉了,都没处说理去,只能自己背锅。
bindgetrealtimephonenumber 使用问题?<button open-type="getRealtimePhoneNumber" bindgetrealtimephonenumber="getRealtimePhoneNumber">点击获取手机号</button> [图片] 文档说明 getRealtimePhoneNumber 不会返回 [代码]encryptedData[代码]和[代码]iv ,只会返回 code, 但实际使用中,该回调是会返回 encryptedData[代码]和[代码]iv 如图:[代码] [图片] [代码]请问是否可以可以继续使用 encryptedData[代码]和[代码]iv 方式呢? 基础库版本:2.32.3[代码]
2023-07-14生成指定页面的二维码
线上版本怎么指定进入的页面?线上版本怎么指定进入的页面?
2023-07-13