小程序中picker多列选择器

需求:实现类似省市联动的效果,选择第一列后,第二列数据变化

html部分:

<view class="section"><view>多列选择器</view><picker mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}"><view>当前选择:{{multiArray[0][multiIndex[0]]}} {{multiArray[1][multiIndex[1]]}}</view></picker>
</view>

js部分:

Page({data: {multiArray: [['标题创作', '社媒文案', '故事创作'], []],multiIndex: [0, 0]},onLoad: function () {this.initSecondColumnData();},// 初始化第二列数据initSecondColumnData: function () {const firstColumnValue = this.data.multiArray[0][0];const secondColumnValues = this.generateSecondColumnValues(firstColumnValue);this.setData({'multiArray[1]': secondColumnValues});},// 根据第一列的选择值,动态生成对应的第二列数据generateSecondColumnValues: function (firstColumnValue) {let secondColumnValues = [];switch (firstColumnValue) {case '标题创作':secondColumnValues = ['标题提取', '小红书标题', '短视频标题', '文章标题', 'SEO文章'];break;case '社媒文案':secondColumnValues = ['社媒文案选项1', '社媒文案选项2', '社媒文案选项3'];break;case '故事创作':secondColumnValues = ['故事创作选项1', '故事创作选项2', '故事创作选项3'];break;default:break;}return secondColumnValues;},// 选择改变事件bindMultiPickerChange: function (e) {console.log('picker发送选择改变,携带值为', e.detail.value);this.setData({multiIndex: e.detail.value});},// 选择列变化事件bindMultiPickerColumnChange: function (e) {console.log('修改的列为', e.detail.column, ',值为', e.detail.value);if (e.detail.column === 0) {// 第一列变化时,动态更新第二列数据const firstColumnValue = this.data.multiArray[0][e.detail.value];const secondColumnValues = this.generateSecondColumnValues(firstColumnValue);this.setData({'multiArray[1]': secondColumnValues});}}
});

效果图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/448913.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自然语言处理(NLP)—— Dialogflow ES聊天机器人

1. 背景介绍 这个实验室的目标是让你了解并使用Google的Dialogflow服务。Dialogflow是一个可以让你创建聊天机器人的服务&#xff0c;这个过程不需要或者只需要很少的编程技能。 1.1 账号的创建 为了完成这个实验室&#xff0c;你需要在以下网站上创建账号&#xff1a…

完整的 HTTP 请求所经历的步骤及分布式事务解决方案

1. 对分布式事务的了解 分布式事务是企业集成中的一个技术难点&#xff0c;也是每一个分布式系统架构中都会涉及到的一个东西&#xff0c; 特别是在微服务架构中&#xff0c;几乎可以说是无法避免。 首先要搞清楚&#xff1a;ACID、CAP、BASE理论。 ACID 指数据库事务正确执行…

MySql主从同步,同步SQL_ERROR 1032解决办法

1.登录从库 mysql -u root -p 2.输入命令查看状态 SHOW SLAVE STATUS\G; 3.找到对应的错误数据位置 Slave_IO_Running: YesSlave_SQL_Running: NoReplicate_Do_DB: app_push_centerReplicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Tabl…

查看域控组策略是否在客户端生效

要查看域控制器上的组策略是否已在客户端生效&#xff0c;可以按照以下步骤操作&#xff1a; 使用 RSOP (Resultant Set of Policy): 在客户端计算机上&#xff0c;以管理员身份打开命令提示符或者 PowerShell&#xff0c;并运行 gpresult /h GPReport.html 或 gpresult /v 命令…

AJAX-认识URL

定义 概念&#xff1a;URL就是统一资源定位符&#xff0c;简称网址&#xff0c;用于访问网络上的资源 组成 协议 http协议&#xff1a;超文本传输协议&#xff0c;规定浏览器和服务器之间传输数据的格式&#xff1b;规定了浏览器发送及服务器返回内容的格式 协议范围&#xf…

【Vue】指令之内容绑定,事件绑定

Vue指令[1] 内容绑定&#xff0c;事件绑定v-test指令v-html指令v-on基础 内容绑定&#xff0c;事件绑定 v-test指令 作用&#xff1a;设置标签的文本值&#xff08;textContent&#xff09; 默认写法会替换全部内容&#xff0c;使用差值表达式可以替换指定内容内部支持写表达…

vue3.0中从proxy中取值

使用vue3.0时&#xff0c;因为底层是使用proxy进行代理的所以当我们打印一些值的时候是proxy代理之后的&#xff0c;是Proxy 对象&#xff0c;Proxy对象里边的[[Target]]才是真实的对象。也是我们需要的 第一种获取target值的方式&#xff1a; import { toRaw } from vue; le…

在 Amazon Nitro Enclaves 中运行 Amazon CloudHSM 应用

背景 Amazon CloudHSM 是亚马逊云科技提供的一项服务&#xff0c;旨在为客户提供安全的硬件安全模块&#xff08;HSM&#xff09;来保护和管理加密密钥。它将传统的硬件安全模块功能与云计算的灵活性相结合&#xff0c;使客户能够在亚马逊云科技云环境中创建和管理自己的加密密…

【DC渗透系列】DC-9靶场

开靶机&#xff0c;net模式&#xff0c;启动 arp-scan -l命令扫描存活主机 nmap -sS -sV -A -n 192.168.100.22 ┌──(root㉿kali)-[~] └─# nmap -sS -sV -A -n 192.168.100.22 Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-31 21:21 EST Nmap scan report for 19…

qt -chart控件设计器可拖拉

qt -chart控件设计器可拖拉 一、演示效果二、安装过程三、核心程序四、程序链接 一、演示效果 二、安装过程 三、核心程序 #include <QtGui> #include <QColor>#include <cstdlib> #include <cassert> #include <numeric>#include <chartwor…

校招春招,在线测评一般测试哪些内容?

在校园招聘这一块&#xff0c;很多应届毕业生会相当在乎&#xff0c;对于他们来说&#xff0c;如果在学校期间就找到工作是比较轻松的事情&#xff0c;不用担心毕业之后找工作困难重重&#xff0c;可以稳稳当当毕业。但想要迅速通过招聘也不容易&#xff0c;在校招春招上面&…

【内置对象·js】

数学对象 document.write("圆周率为 " Math.PI "<br>");日期对象 var date new Date(); // 实例化 Date 对象var month date.getMonth() 1; // 获取月份&#xff0c;取值为 0&#xff08;一月&#xff09;到 11&#xff08;十二月&#xff09;之…