Вы должны сделать что-то динамическое, например присвоить уникальный идентификатор (id="'collapse'+index"
) каждому collapse
и использовать директиву v-b-toggle
внутри соответствующей кнопки v-b-toggle="'collapse'+index"
:
<b-btn v-b-toggle="'collapse'+index" class="m-1">Toggle Collapse</b-btn>
<b-collapse id="'collapse'+index" >
<b-card>
description
</b-card>
</b-collapse>
, чтобы создать классдинамически изменяется, вы должны добавить свойство с именем descShown
в ваш массив projects
.
in getProject
action внутри вашего store
let project = resp.data.project
project=project.map((p)=>{
p.descShown=false;
return p;
})
commit('getProject_success', {
project
})
внутри шаблона:
<div :class="['col-8':data.descShown,'col-6':!data.descShown}" v-for="(data, index) in projects" :key="data._id">
...
<b-btn v-b-toggle="'collapse'+index" @click="showCollapse(index)">
ваш метод должен выглядеть так:
showCollapse(index) {
this.$set(this.projects,index,true);
}