在工作中遇到一个问题,在发布产品后,弹窗提示成功,2秒后弹窗关闭,跳转列表页。
示例:
setTimeout(function () {
this.closeModal()
list.api.reloadData();
},2000)
直接使用上面的代码执行 closeModal()
方法会报错 Uncaught TypeError: this.showModal is not a function
,不能正常执行。
如果要在 Vue.js 中执行 setTimeout()
方法,应该使用下面的代码:
const that = this;
setTimeout(function () {
that.closeModal()
list.api.reloadData();
},2000)
需要注意一下,在 setTimeout()
方法中如果用到 this ,必须在函数外定义一个变量来暂存 this 。
如果不需要使用 this,则不用定义。代码如下:
setTimeout(function () {
list.api.reloadData();
},2000)
以上,希望对您有所帮助。
声明:本文由w3h5原创,转载请注明出处:《Vue中使用setTimeout()定时器延迟执行方法不生效的原因及解决》 https://cloud.tencent.com/developer/article/1589507
本文已加入 腾讯云自媒体分享计划 (点击加入)