uniapp 页面数据由一个list数组循环生产,循环的每个数据显示里都有一个icon,当点击某一个数据时,当前的icon更换其他图标,如何编写
时间: 2024-12-15 07:20:56 浏览: 10
在uni-app中,如果你想动态显示一个列表,其中包含图标,用户点击某个数据时替换对应项的图标,你可以使用`v-for`指令以及Vue的事件系统。下面是一个简单的示例:
首先,在模板(wxml)中创建列表并绑定点击事件到每个元素上:
```html
<view class="data-list">
<view v-for="(item, index) in items" :key="index" @tap="changeIcon(index)">
<view :class="{ currentIcon: item.icon === currentIcon }">
<u-icon :value="item.icon" />
</view>
<!-- 其他数据展示 -->
</view>
</view>
```
然后,在对应的JS文件中处理数据和图标的变化:
```javascript
export default {
data() {
return {
items: [
{ icon: 'icon1' },
{ icon: 'icon2' },
... // 添加更多的项
],
currentIcon: 'default-icon', // 默认图标
};
},
methods: {
changeIcon(index) {
this.currentIcon = this.items[index].icon; // 更换当前选中的图标
// 如果需要,还可以在这里触发数据库更新或其他动作
}
}
};
```
在这个例子中,`items`是一个对象数组,每个对象都有一个`icon`属性。`currentIcon`保存着当前选中的图标。当你点击列表中的某个项目时,`changeIcon`方法会被调用,将对应项的`icon`值赋给`currentIcon`,同时更新视图中的图标样式。
阅读全文