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,其中包含我遇到的一些最好的文章和练习。