《微信小程序开发从入门到实战》学习二十

3.3 开发创建投票页面

3.3.8 使用icon图标文件

原来已经实现了投票选项的增加和修改功能,现在还差删除。现在为每一个选项增加删除按钮,可以以通过icon图标组件实现。

icon常用属性如下:

type icon的类型,有success、success_no_circle、info、warn、waiting、cancel、download、search、clear

size icon的大小,如果属性值是number,则以px为单位,基础库2.4.0以后支持传入单位rpx或px

color icon的颜色

在wxml中加入icon图标组件,修改后form-option中的代码如下:

<view wx:for="{{optionList}}" wx:key="index" class="form-option">

<icon type="cancel" bind:tap="onTapDelOption" data-option-index="{{index}}" class="del-btn"/>

<view class="form-input-wrapper">

<input value="{{item}}" class="form-input" placeholder="选项" placeholder-class="form-text-placeholder"

bindinput="onOptionInputChange"

data-option-index="{{index}}" />

</view>

</view>

在wxss完善该区域样式的代码如下:

.form-option {

margin-top: 20rpx;

display: flex; /* 设置为flex布局,保持默认的横向布局 */

justify-content: space-between; /* 主轴方向的对齐方式使用space-between */

align-items: center;

}

.form-input-wrapper {

color: #333;

font-size: 12pt;

border-bottom:1rpx solid #eee;

padding: 20rpx 0;

flex: 1; /* 设置扩展到最大程度 */

}

.del-btn{

margin-right: 20rpx; /* 与 右侧input保持一定距离 */

}

在js文件中加入删除事件处理函数代码如下:

onTapDelOption(e){

const delIndex = e.currentTarget.dataset.optionIndex //获取当前删除的元素的下标

const newOptionList = this.data.optionList.filter( //筛选当前数组

(v,i) => i !== delIndex //只要不是要被删除的下标的元素,就保留

)

this.setData({

optionList: newOptionList //更新data对象中的optionList

})

},

完成后,预览效果如下所示:

十分开心实现了删除功能。

在上面js文件的代码使用了一个箭头函数:

(v,i) => i !== delIndex

它是下面这个函数的缩写:

(v,i) => {i !== delIndex}

它也可以写成下面的写法:

function(v,i ){rerurn !== delIndex}

所以filter函数里传入了一个匿名函数,对optionList数组的每一个元素都会执行一次,将数组元素的值和下标分别传入函数的第1v、2i个参数中,通过返回true或false,决定是否保留optionList数组中的值。JS箭头函数真简洁,值得学习。

相关推荐
说私域29 分钟前
基于定制开发开源AI智能名片S2B2C商城小程序的零售运营策略研究
人工智能·小程序·开源·零售
低代码布道师4 小时前
加油站小程序实战教程08动态获取城市和站点信息
低代码·小程序
flashier6 小时前
C语言 进阶指针学习笔记
c语言·笔记·学习
—Qeyser6 小时前
用Deepseek写一个五子棋微信小程序
微信小程序·小程序
大白的编程日记.6 小时前
【Linux学习笔记】Linux基本指令分析和权限的概念
linux·笔记·学习
螺旋式上升abc6 小时前
GO语言学习笔记
笔记·学习·golang
W起名有点难6 小时前
前端学习——CSS
前端·css·学习
说私域7 小时前
定制开发开源AI智能名片S2B2C商城小程序:以“晒”为桥,构建信任,助力社交新零售飞跃
人工智能·小程序·零售
Moonnnn.7 小时前
51单片机——汇编工程建立、仿真、调试全过程
汇编·笔记·嵌入式硬件·学习·51单片机
oil欧哟8 小时前
🥳 做了三个月的学习卡盒小程序,开源了!
前端·vue.js·微信小程序