Vue.js数据在created()函数中不可用

时间:2017-02-10 01:02:21

标签: javascript vue.js

我在使用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,并且检查了thisthis.verificationthis.verification.verified的值,那么它们都会被设置我在数据对象中初始化的值。

有人可以解释我做错了吗?

基本上,如果用户在之前的任何时间已完成验证过程,我会尝试在页面加载时隐藏元素。

2 个答案:

答案 0 :(得分:3)

当您希望外部上下文中的this的值流入您的函数体而不是具有this的上下文的函数时,可以使用箭头函数。这意味着this函数中的created未指向您的Vue实例。

但是,您仍然可以使用ES6提供的速记方法声明语法:

new Vue({
    created() {
        // ...
    }
});

答案 1 :(得分:0)

好吧我发现了问题..这是因为我正在使用ES2015表示函数..改回function(){}允许它再次工作..所以我需要做更多的研究来弄清楚如何将ES2015与Vue.js一起使用