axios中this为undefined解决
发布日期:2021-06-21 03:00:25 浏览次数:5 分类:技术文章

本文共 925 字,大约阅读时间需要 3 分钟。

    mounted()

    {
        function getUserAccount()
        {
            return axios.get("./data/demo_account.json");
        }

        function getUserPermissions() {

            return axios.get('./data/demo_permission.json');
        }
        axios.all([getUserAccount(), getUserPermissions()])
            .then(axios.spread(function (acct, perms) {
                // 两个请求现在都执行完成
                console.log(this.acct)
                console.log(this.perms)
                this.acct = acct.data
                this.perms = perms.data

            }));

    }
发现无法访问到根实例中声明的this.acct和this.perms,打印结果是undefined,原因式作用域的问题。

解决的方法是使用箭头函数=>

箭头函数和匿名函数有个明显的区别:箭头函数内部的this是词法作用域,在编写函数时就已经确定了,由上下文确定。而匿名函数的this指向运行时实际调用该方法的对象,无法在编写函数时确定。

    mounted()

    {
        function getUserAccount()
        {
            return axios.get("./data/demo_account.json");
        }

        function getUserPermissions() {

            return axios.get('./data/demo_permission.json');
        }
        axios.all([getUserAccount(), getUserPermissions()])
            .then(axios.spread((acct, perms)=> {
                // 两个请求现在都执行完成
                console.log(this.acct)
                console.log(this.perms)
                this.acct = acct.data
                this.perms = perms.data

            }));

    }

 

转载地址:https://blog.csdn.net/Kwoky/article/details/104038570 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:常见的html转义字符
下一篇:给router-link绑定了click事件

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年03月19日 22时40分42秒