当前位置: 首页 > article >正文

Vue的methods中定时器的变量报错问题

这是由于this的指向造成的。

普通函数的this谁调用它,它就指向谁,换句话说,普通函数中的this指向是变化的,指向使用函数时的指向。

而箭头函数不同,箭头函数的this指向是固定不变的,指向定义时的指向。

因此,当定时器异步执行时,执行环境已发生了变化,this指向了window,无法找到定义时指向的变量,所以会报错。

错误代码如下:

this.obj = setInterval(function() { // 1秒间隔定时器
	if (this.myTimer.seconds <= 0) {
		clearInterval(this.obj);
	} else {
		this.myTimer.seconds = this.myTimer.seconds - 1;
		this.myTimer.smsBtnText = "倒计时" + this.myTimer.seconds + "秒";
	}
}, 1000); 

正确代码如下:

this.obj = setInterval(() => { // 1秒间隔定时器
	if (this.myTimer.seconds <= 0) {
		clearInterval(this.obj);
	} else {
		this.myTimer.seconds = this.myTimer.seconds - 1;
		this.myTimer.smsBtnText = "倒计时" + this.myTimer.seconds + "秒";
	}
}, 1000);


http://www.kler.cn/news/160099.html

相关文章:

  • 十年JK无人知!一朝泳衣天下识
  • 【数据结构】——二叉树特点
  • 区块链创新应用场景不断拓展,实现去中心化
  • 前端三大MV*模式:MVC、mvvm、mvp模式介绍
  • 数据库的设计规范
  • Element-UI 动态控制输入组件类型,定义代码组件、前端模板
  • 02数仓平台Zookeeper
  • prime靶机打靶记录
  • 数字化转型:利用软件电商平台与私有化软件提升竞争力
  • C++ 共享内存ShellCode跨进程传输
  • 54.多级缓存
  • 【PyTorch】数据集
  • 实战oj题——设计循环队列
  • 【Qt之QSqlRelationalTableModel】描述及使用
  • 【微信小程序】保存多张图片到本地相册 wx.saveImageToPhotosAlbum
  • 分支和循环
  • 目标检测——R-CNN算法解读
  • web理论测试
  • Insomnia -- 非常nice的开源 API 调试工具
  • Camunda 7.x 系列【57】流程设计器
  • Axios详解及运用案例
  • 详细学习PyQt5中的多线程
  • ubuntu下QT搭建Android开发环境
  • Linux C语言 42-进程间通信IPC之网络通信(套接字)
  • 基于springboot+vue篮球联盟管理系统源码
  • 基于Vue.js的厦门旅游电子商务预订系统的设计和实现
  • String转Date,Date转String
  • ElasticSearch之Search settings
  • MongoDB导入导出命令
  • 配置OSS后如何将服务器已有文件上传至OSS,推荐使用ossutil使用