试图将Axios响应中的值传递给Vue中的数据对象显然是愚蠢的错误

时间:2019-05-01 22:22:08

标签: vue.js vuejs2 axios

我确定这很简单,但是我无法将Axios请求的响应传递给数据对象以在其他地方使用。目前,它只是返回我在数据对象中设置为默认值的任何内容(在这种情况下,为null)。请帮助!非常感谢。

我的Vue代码:

var thing = new Vue({
    el: '#el',
    data: {
        message: null,
    },
    components: ...
    template: ...
    methods: {
        thing() {
            ...
        }
    },
    created() {
        axios.get('/is-logged')
        .then(response => {
            if(response.data.status == 'error') {
                this.message = response.data.message;
            }
        })
        .catch(e => {
            console.log(e);
        });
    },

    mounted() {
        if (!this.message) {
            console.log(this.message);
            this.thing();
        }
    }
});

我从is_logged得到的回复:

{"message":"You are not authorised","status":"error"}

1 个答案:

答案 0 :(得分:1)

您正在记录AJAX请求完成之前的值(因为在mounted中获得请求的响应之前,组件将为created)。

尝试将console.log(this.message)放在then回调的末尾。