多次使用axios请求数据 第一次的数据可以显示在html上 后面的就不行了
<template v-for='obj in topic'>
<div class='row'>
<img :src='obj.author.avatar_url' :title="obj.author.loginname"/>
<span>{{obj.reply_count}}</span>
<span>/</span>
<span>{{obj.visit_count}}</span>
<span>{{obj | tabName}}</span>
<span>{{obj.title}}</span>
<span></span>
<!--就这有lastReply不能显示 其他的数据都能显示
这个请求不是第一次请求
-->
<img :src='lastReply'/>
<router-link :to="{name:'topic',params:{id:1}}">
this is root page
</router-link>
</div>
</template>
getData:async function(){
var limit=5;
var data=await axios({
method:'get',
url:'https://cnodejs.org/api/v1/topics',
params:{
limit:limit
}
})
//这次请求来的数据可以显示到html
console.log(data.data.data);
this.topic=data.data.data;
var id=data.data.data[0].id;
var reply_btw='';
for(var i=0;i<limit;i++){
id=data.data.data[i].id;
//这几次请求来的数据可以显示在控制台 但在template中就不行了了
reply_btw=await axios({
url:'https://cnodejs.org/api/v1/topic/'+id
});
console.log(reply_btw.data.data.replies);
if(reply_btw.data.data.replies.length<1){
this.topic[i].lastReply=false;
}
else{
//所有请求来的数据都存到topic里面
this.topic[i].lastReply=reply_btw.data.data.replies.slice(-1)[0].author.avatar_url;
}
}
//最终在控制台显示的数据是完整的
console.log(this.topic);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
修改数组用
this.$set(data, index, value)
https://cn.vuejs.org/v2/guide...