Nativescript-vue 超时后更改值
Nativescript-vue change value after timeout
我想在特定时间后更改(重置)数据属性。我的尝试导致类型错误: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 比对打字稿更熟悉,所以我的猜测是 Java 内部是 运行 睡眠或另一个线程内的类似东西,这就是它在尝试时崩溃的原因访问 showSuccessPopover 本身(因为该字段不存在于线程对象中)-这只是我对发生的事情的猜测,如果情况有所不同,请随时纠正我,我真的很想知道。
当然还有解决我的问题的方法 ;)
提前致谢!
发生这种情况是因为在 function()
中,关键字 this
引用未定义的函数本身(可以是对象),以便引用其直接父项(就是我们需要的vue实例),你需要像这样把它转换成箭头函数
<!-- language: lang-js -->
setTimeout(() =>{
this.showSuccessPopover = false;
}, 2000);
这里还有一篇对 JavaScript 很有用的 resource,其中包含我遇到的一些最好的文章和练习。
我想在特定时间后更改(重置)数据属性。我的尝试导致类型错误: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 比对打字稿更熟悉,所以我的猜测是 Java 内部是 运行 睡眠或另一个线程内的类似东西,这就是它在尝试时崩溃的原因访问 showSuccessPopover 本身(因为该字段不存在于线程对象中)-这只是我对发生的事情的猜测,如果情况有所不同,请随时纠正我,我真的很想知道。
当然还有解决我的问题的方法 ;)
提前致谢!
发生这种情况是因为在 function()
中,关键字 this
引用未定义的函数本身(可以是对象),以便引用其直接父项(就是我们需要的vue实例),你需要像这样把它转换成箭头函数
<!-- language: lang-js -->
setTimeout(() =>{
this.showSuccessPopover = false;
}, 2000);
这里还有一篇对 JavaScript 很有用的 resource,其中包含我遇到的一些最好的文章和练习。