Cannot read property ‘updateRedirectInfo‘ of undefined

文章讲述了在Vue/uni-app应用中,由于定时器内的this指向问题,如何在定时器外部创建一个that引用并正确调用`updateRedirectInfo`方法以实现页面跳转。作者提供了代码片段进行说明。
摘要由CSDN通过智能技术生成

this.updateRedirectInfo({
                    // 跳转的方式
                    openType:'switchTab',
                   // 从哪个页面跳转过去的
                    from:'/pages/cart/cart'
                  })

原因:

        定时器里,调用switchTab后,this指向出了问题,找不到挂载的updateRedirectInfo方法

解决:

        需要修改this,,,在switchTab外,,创建一个that 指向 当前的 this

        然后  使用  that.updateRedirectInfo

        详情查看代码

 // 1. 将定时器的 Id 存储到 timer 中
         this.timer = setInterval(()=>{
            this.seconds--
             // 2. 判断秒数是否 <= 0
            if(this.seconds <= 0){
              clearInterval(this.timer)
              const that = this
                // 2.2 跳转到 my 页面
              uni.switchTab({
                url:'/pages/my/my',
                 // 页面跳转成功之后的回调函数
                success() {
                   // 调用 vuex 的 updateRedirectInfo 方法,把跳转信息存储到 Store 中
                  that.updateRedirectInfo({
                    // 跳转的方式
                    openType:'switchTab',
                   // 从哪个页面跳转过去的
                    from:'/pages/cart/cart'
                  })
                  console.log('222');
                }
              })
               // 2.3 终止后续代码的运行(当秒数为 0 时,不再展示 toast 提示消息)
              return
            }
            this.showTips(this.seconds)
          },1000)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值