我在使用localStorage的数据初始化我的Vue组件时遇到了问题。这是我的代码的简化版本
new Vue({
el: "#my-element",
created: () => {
if (window.localStorage.getItem("verified")) {
this.verification.verified = true;
}
},
data: {
verification: {
verified: false
}
}
});
但我一直在控制台Cannot read property 'verification' of undefined
如果我在created()函数中添加了debugger
,并且检查了this
,this.verification
和this.verification.verified
的值,那么它们都会被设置我在数据对象中初始化的值。
有人可以解释我做错了吗?
基本上,如果用户在之前的任何时间已完成验证过程,我会尝试在页面加载时隐藏元素。
答案 0 :(得分:3)
当您希望外部上下文中的this
的值流入您的函数体而不是具有this
的上下文的函数时,可以使用箭头函数。这意味着this
函数中的created
未指向您的Vue实例。
但是,您仍然可以使用ES6提供的速记方法声明语法:
new Vue({
created() {
// ...
}
});
答案 1 :(得分:0)
好吧我发现了问题..这是因为我正在使用ES2015表示函数..改回function(){}
允许它再次工作..所以我需要做更多的研究来弄清楚如何将ES2015与Vue.js一起使用