머리말: v-for를 통해 dataList를 렌더링할 때 항목을 클릭하여 항목의 표시 및 숨기기를 개별적으로 제어해야 한다는 요구사항이 있습니다.
기능 포인트 : 렌더링할 배열 뒤에 부울 값 필드를 입력하고 클릭하여 true/false로 전환하여 각 항목의 표시 및 숨기기를 제어합니다. 1.
html
<view class="equipment" v-for="(item,index) in dataList" :key="index">
<view class="spread_txt" @click="showTerData(index)" v-if="!item.dataShow">
展开终端数据
</view>
<view class="spread_txt" @click="showTerData(index)" v-if="item.dataShow">
收起
</view>
<view class="ter_data" v-show="item.dataShow">
这里是展开的数据
</view>
</view>
2、js
data() {
return {
// 定义空数组
dataList:[],
}
},
methods: {
getTetminalDataApi(){
// res.data.BODY.data是从后端获取的数组,大家用自己的数据即可
const List = res.data.BODY.data
// 该数组后拼dataShow字段,默认false不显示
this.dataList = List.map(item => {
return {
...item, dataShow: false }; });
},
// 显示与隐藏终端数据
showTerData(i){
// 点击的时候拿到当前索引值,然后切换true/false
this.dataList[i].dataShow = !this.dataList[i].dataShow
},
}
3、CSS
.spread_txt{
width: 95%;
font-size: 24rpx;
font-weight: 600;
color: #088562;
margin: auto;
margin-top: 16rpx;
text-align: right;
box-sizing: border-box;
}
.ter_data{
width: 100%;
height: 500rpx;
padding-left: 24rpx;
box-sizing: border-box;
background-color: pink;
}
Hide:
Show:
응원해주셔서 감사하고 함께해요~