如何解决超时后的Nativescript-vue更改值
我想在一段时间后更改(重置)数据属性。我的尝试导致类型错误:Cannot set property 'showSuccessPopover' of undefined
这是代码:
data() {
return {
showSuccessPopover: false,}
},methods: {
evaluateAnswer():void{
//fancy evaluationstuff happening
showSuccessPopover = true;
//reset popover after 2s
setTimeout(function() {
this.showSuccessPopover = false;
},2000);
}
}
我对Java的熟悉程度比对Typescript的熟悉程度高,所以我的猜测是Java在内部正在运行睡眠或在另一个线程内运行类似的东西,这就是为什么在尝试自行访问showSuccessPopover时它会摇摇欲坠的原因(因为该字段不存在于线程对象)-那只是我对正在发生的事情的猜测,如果情况有所不同,请随时纠正我,我实际上想知道。
以及如何解决我的问题的方法;)
预先感谢!
解决方法
之所以发生这种情况,是因为在function()
中,关键字this
指向未定义的函数本身(可以是对象),以便引用其直接父级(即我们需要的vue实例),您需要将其转换为箭头函数,例如
<!-- language: lang-js -->
setTimeout(() =>{
this.showSuccessPopover = false;
},2000);
这也是JavaScript有用的resource,其中包含一些我遇到的最佳文章和练习。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。