html - v-for循环仅显示唯一项目vue js
问题描述
我试图根据 v-for 和 v-if 条件显示图标,但图标显示多次,我只需要显示唯一的图标。
我试过 v-if = 'index === 0' 但这不起作用
<div v-for="(bits, index) in inv.auction.Bits" :key="index">
<div v-if="bits.iswin == true && bits.userid == d.userid">
<b-tooltip label="mine" position="is-right">
<b-icon class="iswinclass" icon="thumb-up" type="is-success"></b-icon>
</b-tooltip>
</div>
<div v-if="bits.iswin == false && bits.userid == d.userid">
<b-tooltip label="mine" position="is-right">
<b-icon class="iswinclass" icon="thumb-down" type="is-danger"></b-icon>
</b-tooltip>
</div>
</div>
如果条件匹配,我希望显示一个拇指向上和一个拇指向下,而不是显示多个图标
解决方案
听起来您在inv.auction.Bits
那场比赛中有多个项目,d.userid
但如果有任何匹配项,您只想显示一个图标。
我会inv.auction.Bits
创建两个计算属性来确定何时显示图标,而不是循环。
例如
computed: {
showThumbsUp() {
return this.inv.auction.Bits.some(({ iswin, userid }) =>
iswin && userid === this.d.userid)
},
showThumbsDown() {
return this.inv.auction.Bits.some(({ iswin, userid }) =>
!iswin && userid === this.d.userid)
}
}
并在您的模板中(否v-for
)
<div v-if="showThumbsUp">
<b-tooltip label="mine" position="is-right">
<b-icon class="iswinclass" icon="thumb-up" type="is-success"></b-icon>
</b-tooltip>
</div>
<div v-if="showThumbsDown">
<b-tooltip label="mine" position="is-right">
<b-icon class="iswinclass" icon="thumb-down" type="is-danger"></b-icon>
</b-tooltip>
</div>
参考:
推荐阅读
- python - Django:不允许的方法(POST):
- java - 使用 Spring WebFlux 和 Controller 测试失败
- sqlite - 如何获得一列>X中值的比例?
- html - 如何在背景上使用带有文字的idangero swiper然后响应?
- c# - 如何用两个或三个 SetOnClickListener 修复我的列表视图
- python - 在 Django 中尝试通过电子邮件或用户名登录时显示未定义的路径
- python - 是否有一个 pandas 函数来评估子字符串是否在给定字符串中?
- ios - 在 UIViewControllerAnimatedTransitioning 中,“to ViewController”存在视图,但“to View”为 nil
- javascript - this.state.[object].map 不是函数
- java - 文本文件 - 多行字符串为一行