最近在做卡片切换时遇到这样的问题:
场景:当点击A时显示A的相关卡片信息;点击B时显示B的相关卡片信息,以此类推…
思路:定义一个卡片状态对象(isCardState:{A:false;…});利用点击按钮传item值做判断,如果相等显示即可。
问题:点击A时显示A的卡片信息,但是点击B时A的卡片信息还会保留…呃呃呃呃呃呃呃
解决方法:
<template>
<el-form-item label="数据分组" prop="dataValue">
<el-select
:popper-append-to-body="false"
clearable
v-model="ruleForm.dataValue"
placeholder="请选择分组"
>
<el-option
v-for="(item,index) in options"
:key="Math.random()"
:label="item"
:value="item"
@click.native="selectSwitch(item,index)"
>
</el-option>
</el-select>
</el-form-item>
</template>
<script>
export default {
data() {
return {
isCardState:{
SET:false,
STA:false,
AI:false,
DI:false,
AO:false,
DO:false,
VER:false,
},
};
},
methods:{
//重点
selectSwitch(item,index){
Object.keys(this.isCardState).forEach((key) => {
this.isCardState[key] = key === item ? true : false;
});
},
}
}
</script>
效果: