javascript - 使用 Vue.js,如何在 v-for 循环中使用模态组件?
问题描述
我用 vue-Bootstrap 制作了 v-for 循环卡。
在状态中,有假人。像这样。
myTeams: [
{name: "T1", img: "https://placekitten.com/300/300" , nickname: "", followers: 14565, category: "lol"},
{name: "ManU", img: "https://placekitten.com/300/300" , nickname: "", followers: 1234, category: "football"},
{name: "Chelsea", img: "https://placekitten.com/300/300" , nickname: "", followers: 76567, category: "baseaball"},
],
这是我的 vue.js 代码
<template>
<div>
<br>
<b-card-group columns deck>
<br>
<br>
<b-card
v-b-modal.modal-1
v-for="(team, idx) in myteams"
:key = "idx"
:team="team"
:src = "team.img"
border-variant="success"
tag="article"
style="max-width: 15rem;"
class="mb-2"
>
<b-container>
<b-avatar
:src="team.img"
size="6rem"
class="d-flex"
>
</b-avatar>
<br>
<b-card-title>
<div v-if="team.nickname.length === 0">{{ team.name }}</div>
<div v-else>{{ team.nickname }}</div>
</b-card-title>
<b-card-text>
{{ team.followers }} people like this team.
</b-card-text>
<b-button pill variant="danger" size="sm">delete</b-button>
</b-container>
<b-modal id="modal-1" :title="team.name">
<p class="my-4">{{team}}</p>
</b-modal>
</b-card>
</b-card-group>
</div>
</template>
和js
<script>
import { mapState } from 'vuex'
export default {
name: 'MyMyTeam',
computed: {
...mapState({
myteams: 'myTeams'
})
},
}
我只是希望每张卡都有自己的模态 ex) 当我单击ManU
卡时,只会激活一个模态并且它有ManU
数据但是在我的代码中,当我单击一张卡时,激活了 3 个模态.... T1,ManU,Chelsea
我怎样才能解决它?
解决方案
尝试在您的 Array 中添加“id”,并将 Array 的 ID 作为 Key。
v-for="team in myteams"
:key="team.id"
或者,如果您不添加“id”,请更改循环的键:key="team.name"
推荐阅读
- android - 我想从我的画廊加载所有图像,但是当我调用 cursor.moveToFirst() 时我的光标返回 false
- f# - 包含选项的 F# 数据类型
- ffmpeg - 使用 cvlc、openRTSP 或 ffmpeg 从 Hikvision 将 RTSP 保存到 .mp4 时出错
- python-3.x - 具有multiIndex的数据帧元组索引并减去索引的第三个元素
- java - 检查该值是否为空并将其分配为 0
- asp.net-core - 直接实例化 ModelExpression
- php - Codeigniter 在托管程序中发送电子邮件不工作 SMTP
- php - 如何配置 Nginx 执行 PHP
- scala - 将带有标题的空 DF 写入 csv
- python - 如何通过 Python 连接到 Azure SQL Server