【发布时间】:2021-02-17 02:39:37
【问题描述】:
我在 Vue 组件中有一些复制手风琴的代码,我希望在当前项目处于活动状态时下拉箭头旋转 90 度。但是,无论我尝试什么,都没有任何效果。
<template>
<div
class="short-term__table"
v-for="(credit, index) in credits"
:key="index"
>
<div class="row ribbon">
<div class="col" @click="showDetails(index)">
<i
class="caret-right fas fa-caret-right"
:class="credit.active ? 'active' : ''"
>
</i>
</div>
</div>
<CreditDetails v-if="credits[index].active" />
</div>
</template>
<script>
import CreditDetails from "./credit-item-details.component";
export default {
components: {
CreditDetails,
},
data() {
return {
credits: [
{
active: false,
},
{
active: false,
},
{
active: true,
},
],
};
},
methods: {
showDetails(index) {
this.credits[index].active = !this.credits[index].active;
},
},
};
</script>
<style scoped lang="scss">
.active {
transform: rotate(90deg);
}
</style>
这在创建组件时有效,但是当数据更改时类不会更新?
所以问题: 为什么 credit.active 不更新类绑定。
【问题讨论】:
-
可能你的问题出在 CSS 而不是 Vue。尝试将 ʻactive` 类附加到元素上进行测试。