我又来提问了 关于axios的
源代码
<template>
<div class="header">
<div v-for="(val,index) in list" :key="index">
<ul>
<li>{{val.name}}</li>
<li></li>
</ul>
</div>
</div>
</template>
<script>
import axios from 'axios'
export default {
name: "axiso",
data() {
return {
list: [],
}
},
mounted() {
this.getJson()
console.log(this.list)
},
methods: {
getJson() {
console.log(this)
const url = "http://localhost:8080/api"
axios.get(url).then(res => {
this.list = res.data
console.log(this.list, '------');
});
},
}
}
</script>
<style>
</style>
也能获取到数据,但是就是不能渲染到页面里
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
VUE直接数组赋值是不会触发试图更新的,把数据push到list里才能触发试图更新。
你没有用es6的写法,这里边你用this是指向不到你的data里定义的内容的。
你在axios外加上 let that = this;试一试,看看行不行。
接口返回的JSON格式不对
看你的截图,
console.log
打印的this.list
是{{'id':1,'name':''},{},{},}
,这好像格式不对啊。。。正常的json格式数据打印出来是这样子的:
试试转换下数据格式
let data = JSON.parse(res.data)
,或者让给后端给正确的json格式的数据。使用JSON.parse()把json字符串转换为json对象
你的这个
list
格式有问题吧,不是一个数组。所以循环不出来。