在工作中遇到一个问题,在发布产品后,弹窗提示成功,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)
以上,希望对您有所帮助。