这个是我代码
Vue
<div class="btns">
<el-row> <el-button type="danger">加入购物车</el-button>
<el-button type="primary" class="sets_button" @click="addfav(id)" v-if="isfav == false">
收藏
</el-button>
<el-button type="primary" class="sets_button" @click="delfav(id)" v-else>
已收藏
</el-button>
</el-row>
</div>
Vue created
getallfav({
headers: {
Authorization: 'JWT '+localStorage.getItem('token')
}
}).then(res=>{
for(let i of res){
console.log(i.goods.id)
if (i.goods.id == this.id){
this.isfav = true
console.log('已收藏')
break
}
}
})
页面在created完成的时候true并没有赋值给this.isfav
,响应完的时候页面已经加载完毕,请问有没有办法让created赋值完后页面再加载呢
你应该将data中的数据一并标出来. 就目前代码未看出什么逻辑问题
然后你这个for可以考虑改进一下, 比如用findIndex 或 find 去查找是否存在于已收藏列表
犀利一笑^_^