Bootstrap Vue 手风琴不使用数组中的 id 进行扩展
Bootstrap Vue accordion not expanding with id from array
我有一个 Bootstrap-Vue accordion
的数组,其中包含一个 id
。该按钮与我的文本一起出现,但不会在单击时展开。总的来说,我对编码还很陌生,这是我使用 Vue 的第一周,对它来说非常陌生。
我试过创建“accordion-1
”、“accordion-2
”等的 id
,并提供 v-b-toggle
和折叠 ID“[=19=” ]”。我也试过让 accId 是一个数字(1、2 等),并将 v-b-toggle 和 collapse ids 作为“'accordion1' + accId
”以及 +item.id
和 +“[=19=”提供]。最后,我尝试添加 reactive: true 语句,因为我在控制台中收到有关反应性的消息,但没有任何效果。
<b-card no-body class="mb-1" v-for="item in accordionItems" :key="item.accId">
<b-card-header header-tag="header" class="p-1" role="tab">
<b-button block v-b-toggle="'accordion-' + accordionItems.accId" variant="primary"> {{ item.button }}
</b-button>
</b-card-header>
<b-collapse id="'accordion-' + accordionItems.accId" accordion="my-accordion" role="tabpanel">
<b-card-body>
<b-card-text>{{ item.text }}</b-card-text>
</b-card-body>
</b-collapse>
</b-card>
<script>
export default {
name: "Accordion",
data() {
return { reactive: true,
accordionItems: [
{
accId: 1,
button: `Who played Burt and Heather Gummer in Tremors?`,
text: `Answer: Burt: Michael Gross, Heather: Reba McEntire`
},
{
accId: 2,
button: `In "The Bachelor and the Bobby-Soxer" (1947), what line does Dick Nugent (Cary Grant) use to convince Susan Turner (Shirley Temple) he's no more mature than boys her own age?`,
text: `Answer: "Mellow greetings, yookie dookie!"`
}
],
}
}
}
</script>
当我使用 Vue 检查时,我可以看到 id 显示为“'accordion-' + accordionItems.accId
”,所以我知道我遗漏了一些东西。我希望点击问题并展开以显示答案。
您需要"bind" ID:
<b-collapse :id="'accordion-' + accordionItems.accId" accordion="my-accordion" role="tabpanel">
<b-card-body>
<b-card-text>{{ item.text }}</b-card-text>
</b-card-body>
</b-collapse>
注意 id=
之前的 :
。这指示 Vue 引号中的值是一个 javascript 表达式。
id="'accordion-' + accordionItems.accId"
发生的事情是 Vue 将双引号之间的值视为字符串文字,而不是 JavaScript 表达式。
我有一个 Bootstrap-Vue accordion
的数组,其中包含一个 id
。该按钮与我的文本一起出现,但不会在单击时展开。总的来说,我对编码还很陌生,这是我使用 Vue 的第一周,对它来说非常陌生。
我试过创建“accordion-1
”、“accordion-2
”等的 id
,并提供 v-b-toggle
和折叠 ID“[=19=” ]”。我也试过让 accId 是一个数字(1、2 等),并将 v-b-toggle 和 collapse ids 作为“'accordion1' + accId
”以及 +item.id
和 +“[=19=”提供]。最后,我尝试添加 reactive: true 语句,因为我在控制台中收到有关反应性的消息,但没有任何效果。
<b-card no-body class="mb-1" v-for="item in accordionItems" :key="item.accId">
<b-card-header header-tag="header" class="p-1" role="tab">
<b-button block v-b-toggle="'accordion-' + accordionItems.accId" variant="primary"> {{ item.button }}
</b-button>
</b-card-header>
<b-collapse id="'accordion-' + accordionItems.accId" accordion="my-accordion" role="tabpanel">
<b-card-body>
<b-card-text>{{ item.text }}</b-card-text>
</b-card-body>
</b-collapse>
</b-card>
<script>
export default {
name: "Accordion",
data() {
return { reactive: true,
accordionItems: [
{
accId: 1,
button: `Who played Burt and Heather Gummer in Tremors?`,
text: `Answer: Burt: Michael Gross, Heather: Reba McEntire`
},
{
accId: 2,
button: `In "The Bachelor and the Bobby-Soxer" (1947), what line does Dick Nugent (Cary Grant) use to convince Susan Turner (Shirley Temple) he's no more mature than boys her own age?`,
text: `Answer: "Mellow greetings, yookie dookie!"`
}
],
}
}
}
</script>
当我使用 Vue 检查时,我可以看到 id 显示为“'accordion-' + accordionItems.accId
”,所以我知道我遗漏了一些东西。我希望点击问题并展开以显示答案。
您需要"bind" ID:
<b-collapse :id="'accordion-' + accordionItems.accId" accordion="my-accordion" role="tabpanel">
<b-card-body>
<b-card-text>{{ item.text }}</b-card-text>
</b-card-body>
</b-collapse>
注意 id=
之前的 :
。这指示 Vue 引号中的值是一个 javascript 表达式。
id="'accordion-' + accordionItems.accId"
发生的事情是 Vue 将双引号之间的值视为字符串文字,而不是 JavaScript 表达式。