vue使用axios获取的数据页面不更新
为什么后端带的axios加载,在控制台已经看到数据了,但是vue绑定不到页面上
this指向有问题,并不是vue的实例,then中回调改为箭头函数,或者用一个变量存储vm实例,用这个变量来更新,如下
created: function () {
let me = this;//存储vue实例
axios({
//......
}).then((res) => {//箭头函数,this才是vue实例,否则为window
this.nickname = res.data.data.nick_name
//me.nickname = res.data.data.nick_name//或者用上面me变量来设置nickname
})
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!昨天还还好的项目,今天开服务器代理报错。一开始以为代理有问题,就各种搜,无效。
最后竟然发现是接口出了问题!!!
找到新的接口后,拿到数据,但是还是无法渲染到页面,又是各种搜。。。
最后看工具,发现JSON数据获取的是对象,我按着数组处理的,肯定不对啊。。。太蠢了。。以下是我修改的过程,希望可以帮到你
这是改之前的错误代码
mounted() {
this.axios.get(`/ajax/cinemaList`).then(
response => {
// console.log(response.data)
var cinemas = response.data
// console.log(cinemas)
if (cinemas) {
this.cinemas = response.data // 此处的this.cinemas是一个对象!!
this.isLoading = false
}
console.log(this.cinemas)
}
)
}
mounted() {
this.axios.get(`/ajax/cinemaList`).then(
response => {
// console.log(response.data);
var cinemas = response.data
// console.log(cinemas)
if (cinemas) {
this.cinemas = response.data.cinemas // 修改后
this.isLoading = false
}
console.log(this.cinemas)
}
)
}