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

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箭头函数真简洁,值得学习。

相关推荐
testpassportcn1 分钟前
UiPath-ADPV1 認證介紹|Automation Developer Professional v1
网络·学习·改行学it
生擒小朵拉1 分钟前
ROS1学习笔记(二)
笔记·学习
Gorgous—l2 小时前
数据结构算法学习:LeetCode热题100-动态规划篇(下)(单词拆分、最长递增子序列、乘积最大子数组、分割等和子集、最长有效括号)
数据结构·学习·算法
窗边鸟4 小时前
小白日记之java方法(java复习)
java·学习
魔芋红茶4 小时前
Spring Security 学习笔记 4:用户/密码认证
笔记·学习·spring
爱宁~5 小时前
UnityShader学习笔记[二百九十九]UGUI中的Mask遮罩半透明Shader
笔记·学习
2501_915909065 小时前
原生与 H5 共存情况下的测试思路,混合开发 App 的实际测试场景
android·ios·小程序·https·uni-app·iphone·webview
游戏开发爱好者86 小时前
了解 Xcode 在 iOS 开发中的作用和功能有哪些
android·ios·小程序·https·uni-app·iphone·webview
啦哈拉哈7 小时前
【Python】知识点零碎学习4
python·学习·算法
HyperAI超神经7 小时前
【vLLM 学习】Rlhf Utils
人工智能·深度学习·学习·机器学习·ai编程·vllm