用循环出来的值去请求接口,并展示到页面上
需求:
不同的类型下展示对应的任务,
红色部分是一个数组:taskStatusList:[{key:1,value: '待办的'},{key:1,value: '进行中'}]
用taskStatusList中的每一项去请求接口
// 任务状态this.taskStatusList.forEach((item) => {
const params = {
loginName: this.loginName,
pageNum: this.pager.pageNum,
pageSize: this.pager.pageSize,
status: item.value,
};
this.$api.Task.taskList(params, (res) => {
console.log(res);
this.tableData = res.list || [];
this.tableData.forEach((ele) => {
this.commentData(ele.taskId);
});
});
});
<ul class="board-list" v-infinite-scroll="taskListData">
<li class="card clearfix"
v-for="(item, index) in tableData"
:key="index">
<div class="list-title padding">{{ item.title }} </div>
<li>
</ul>
按照现在的写法出现的问题是:
每个状态下的任务都是一样的,( 后台返回的数据是对的 )
请问怎么让每个状态下回显对应的任务呢?
回答
this.taskStatusList.forEach((item) => { const params = {
loginName: this.loginName,
pageNum: this.pager.pageNum,
pageSize: this.pager.pageSize,
status: item.value,
};
this.$api.Task.taskList(params, (res) => {
console.log(res);
this.tableData = res.list || [];
this.tableData.forEach((ele) => {
this.commentData(ele.taskId);
});
});
});
this.tableData = res.list || [];
看上去这里有问题,这里会把值覆盖成最后一次的返回,所以这里应该是 this.tableData = this.tableData.concat(res.list || []);
然后再说如果 commentData
里面会处理,那么可以把 ele
传递进去,可以用 $set
来赋值
以上是 用循环出来的值去请求接口,并展示到页面上 的全部内容, 来源链接: utcz.com/a/32187.html