我确定这很简单,但是我无法将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"}
答案 0 :(得分:1)
您正在记录AJAX请求完成之前的值(因为在mounted
中获得请求的响应之前,组件将为created
)。
尝试将console.log(this.message)
放在then
回调的末尾。