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

news/2024/7/20 4:32:59 标签: 微信小程序, 学习, 小程序

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


http://www.niftyadmin.cn/n/5195912.html

相关文章

Flutter 中数据存储的四种方式

在 Flutter 中&#xff0c;存储是指用于本地和远程存储和管理数据的机制。以下是 Flutter 中不同存储选项的概述和示例。 Shared Preferences&#xff08;本地键值存储&#xff09; Shared Preferences 是一种在本地存储少量数据&#xff08;例如用户首选项或设置&#xff09…

【Spring】之初识

未来的几周时间&#xff0c;大概率我会更新一下Spring家族的一些简单知识。而什么是Spring家族&#xff0c;好多同学还不是很清楚&#xff0c;我先来简单介绍一下吧&#xff1a; 所谓Spring家族&#xff0c;它其实就是一个框架&#xff0c;是基于Servlet再次进行封装的内容。为…

python语法之变量名

变量可以有一个简短的名称(如x和y)&#xff0c;也可以有一个更具描述性的名称(如age、carname、total_volume)。Python变量规则: 变量名必须以字母或下划线开头变量名不能以数字开头变量名只能包含字母数字字符和下划线(A-z、0-9和_)。变量名区分大小写(age、age和age是三个不…

计算机网络的标准化工作及相关组织

一、国际化组织 计算机网络的标准化工作由一些主要的组织来进行管理和推动。以下是几个主要的计算机网络标准化的国际组织及其相关的标准&#xff1a; 1. 国际标准化组织&#xff08;ISO&#xff09;&#xff1a;国际标准化组织负责制定各种行业的标准&#xff0c;包括计算机…

【开源】基于Vue.js的高校宿舍调配管理系统

项目编号&#xff1a; S 051 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S051&#xff0c;文末获取源码。} 项目编号&#xff1a;S051&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能需求2.1 学生端2.2 宿管2.3 老师端 三、系统…

【Android Jetpack】DataStore的介绍

DataStore Jetpack DataStore是一种数据存储解决方案&#xff0c;允许您使用协议缓冲区存储键值对或类型化对象。DataStore使用Kotlin协程和Flow以异步、一致的事务方式存储数据。 注意&#xff1a;如果您需要支持大型或复杂数据集、部分更新或参照完整性&#xff0c;请考虑使…

Android registerForActivityResults使用详解以及实现原理

registerForActivityResult 使用用途是监听Activity结果。 以下是使用样例 //需要传递Request用于解析Intent和解析上个Activity返回的结果 val launchdata = registerForActivityResult<PickVisualMediaRequest, Uri?>(ActivityResultContracts.PickVisualMedia()) {…

S32K324 UDS Bootloader开发-下位机篇-Bootload软件(2)

文章目录 前言UDS协议栈初始化主函数TP函数UDS协议服务配置DID配置服务修改27服务34服务11服务总结前言 上一篇文章介绍了S32K324 UDS Bootlodaer开发中的Bootloader软件,本文接着介绍UDS相关的更改。 本文参考NXP官网的S32K324 UBL,其中有一些Bug,也有一些和上位机不兼容的…