taro之Picker,PickerView基础用法

news2024/9/22 13:22:16

1.Picker

直接上代码

import Taro,{Component} from "@tarojs/taro";
import {View,Picker} from '@tarojs/components'
import { AtIcon } from 'taro-ui'
import { putKey } from '@/src/utils/storage-utils'

 

class AgriculturePolicy extends Component{
    constructor (props) {
        super(props)
        this.state = {
            cityValue:'城市',
            regions:'',
        }
      }
    cityChange = (e) => {
        // 获取地址
        let address = e.detail.value
        // 如果选择不限则清空地址数组
        address.map((item,index)=>{
            if(item == '不限'){
                address.splice(index)
            }
        })
        // 如果地址为空数组则置空,否则改变其状态
        if(address.length == 0){
            putKey('address','')
            this.setState({
                regions: '',
                cityValue: '城市',
      
            })
          }else{
            putKey('address',e.detail.value.toString())
            console.log('最终存在状态里边的是',e.detail.value.toString(),address.toString())
            this.setState({
                regions: e.detail.value.toString(),
                cityValue: address.toString(),
            })
          }
    }

    cityChangeClear = () => {
        this.setState({
            regions: '',
            cityValue: '城市',
          })
    }
    render(){
        const {cityValue,regions} = this.state
        console.log(cityValue,regions)
        return(
            <View>
                <Picker mode='region' customItem='不限' onChange={this.cityChange} onCancel={this.cityChangeClear}> 
                    {
                    cityValue=='城市'? <View className='city'>{cityValue}<AtIcon value='chevron-down' size='22' color='#333'></AtIcon></View>:
                    <View className='city'>{cityValue}</View>
                    }
                </Picker>
            </View>
        )
    }
}

export default AgriculturePolicy

备注:mode还有其他的属性,比如time,date,selector

在这里着重提一下selector这个属性的代码案例

<View className='page-section'>
            <Text>地区选择器</Text>
            <View>
              <Picker mode='selector' range={this.state.selector} onChange={this.onChange}>
                <View className='picker'>
                  当前选择:{this.state.selectorChecked}
                </View>
              </Picker>
            </View>
          </View>

2.PickerView

直接上代码

import Taro,{Component} from "@tarojs/taro";
import {View,PickerView,PickerViewColumn} from '@tarojs/components'
// import { AtIcon } from 'taro-ui'
// import { putKey } from '@/src/utils/storage-utils'

 

class AgriculturePolicy extends Component{
    constructor () {
        super(...arguments)
        const date = new Date()
        const years = []
        const months = []
        const days = []
        for (let i = 1990; i <= date.getFullYear(); i++) {
          years.push(i)
        }
        for (let i = 1; i <= 12; i++) {
          months.push(i)
        }
        for (let i = 1; i <= 31; i++) {
          days.push(i)
        }
        this.state = {
          years: years,
          year: date.getFullYear(),
          months: months,
          month: 2,
          days: days,
          day: 2,
          value: [9999, 1, 1]
        }
      }
    
      onChange = e => {
        const val = e.detail.value
        this.setState({
          year: this.state.years[val[0]],
          month: this.state.months[val[1]],
          day: this.state.days[val[2]],
          value: val
        })
      }
    render(){
       
        return(
            <View>
                <View>{this.state.year}年{this.state.month}月{this.state.day}日</View>
                <PickerView indicatorStyle='height: 50px;' style='width: 100%; height: 300px;' value={this.state.value} onChange={this.onChange}>
                    <PickerViewColumn>
                        {this.state.years.map(item => {
                        return (
                            <View key={item}>{item}年</View>
                        );
                        })}
                    </PickerViewColumn>
                    <PickerViewColumn>
                        {this.state.months.map(item => {
                        return (
                            <View key={item}>{item}月</View>
                        )
                        })}
                    </PickerViewColumn>
                    <PickerViewColumn>
                        {this.state.days.map(item => {
                        return (
                            <View key={item}>{item}日</View>
                        )
                        })}
                    </PickerViewColumn>
                </PickerView>
          </View>
        )
    }
}

export default AgriculturePolicy

备注:indicatorStyle是选中的样式,style是组件的样式,value是选中的值,onchange就是滚动的时候出现的事件

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

部署Zabbix Agents添加使能监测服务器_Linux平台_Yum源/Archive多模式

Linux平台 一、从yum源脚本安装部署Zabbix-Agent,添加Linux Servers/PC 概述 Zabbix 主要有以下几个组件组成: Zabbix Server:Zabbix 服务端,Zabbix的核心组件,它负责接收监控数据并触发告警,还负责将监控数据持久化到数据库中。 Zabbix Agent:Zabbix客户端,部署在被监…

【综述】二维半导体和晶体管在集成电路未来应用

一篇关于二维半导体和晶体管在集成电路未来应用的综述文章。 文章由Lei Yin、Ruiqing Cheng、Jiahui Ding、Jian Jiang、Yutang Hou、Xiaoqiang Feng、Yao Wen和Jun He*共同撰写&#xff0c;发表在《ACS Nano》2024年第18卷上。 Figure 1: CMOS晶体管的演变 描述了CMOS晶体管…

8 克隆虚拟机

后期集群我们需要使用多台服务器&#xff0c;此处我们先克隆三台&#xff0c;master,slave01,slave02. 1.先关闭模版虚拟机。再选择 模版虚拟机hadoop100右击--》管理 --》克隆 2.下图中特别注意&#xff1a;建议使用集群的名字作为虚拟机名称。目前克隆主机master. 以上步骤完…

全域电商数据实现高效稳定大批量采集♀

全域电商&#xff0c;是近几年的新趋势&#xff0c;几乎所有商家都在布局全域&#xff0c;追求全域增长。但商家发现&#xff0c;随着投入成本的上涨&#xff0c;利润却没有增加。 其中最为突出的是——商家为保证全域数据的及时更新&#xff0c;通过堆人头的方式完成每日取数任…

怎么自己打印物流货运单,物流打印定制软件

怎么自己打印物流货运单&#xff0c;物流打印定制软件 一、前言 以下软件操作教程以 佳易王物流单打印登记查询系统V17.0为例说明 件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、物流货运单打印有两种模式 一个是直接打印&#xff0c;可以在空白纸上…

Matlab与高光谱遥感:环境监测的新时代

光谱和图像是人们观察世界的两种方式&#xff0c;高光谱遥感通过“图谱合一”的技术创新将两者结合起来&#xff0c;大大提高了人们对客观世界的认知能力&#xff0c;本来在宽波段遥感中不可探测的物质&#xff0c;在高光谱遥感中能被探测。以高光谱遥感为核心&#xff0c;构建…

docker 配置国内阿里镜像源

在/etc/docker/目录下新建daemon.json文件 在文件中写入 {"registry-mirrors": ["https://jmphwhtw.mirror.aliyuncs.com"] } 以管理员身份运行命令 systemctl daemon-reload systemctl restart docker

JetPack之DataBinding基础使用

目录 一、简介二、使用2.1 使用环境2.2 xml文件绑定数据2.3 数据绑定的对象2.3.1 object2.3.2 ObseravbleField2.3.3 ObseravbleCollection 2.4 绑定数据 三、应用场景 一、简介 DataBinding是谷歌15年推出的library,DataBinding支持双向绑定&#xff0c;能大大减少绑定app逻辑…

【Algorithms 4】算法(第4版)学习笔记 20 - 5.1 字符串排序

文章目录 前言参考目录学习笔记1&#xff1a;Java 字符串1.1&#xff1a;字符串数字类型2&#xff1a;键索引计数法 key-indexed counting2.1&#xff1a;排序算法回顾2.2&#xff1a;关于 key 的假设2.3&#xff1a;demo 演示2.4&#xff1a;分析3&#xff1a;低位优先基数排序…

全球首个Open机器人诞生!当GPT模型有了“肉体”,不仅能听能写还可以干家务!

世界上第一个「ChatGPT机器人」来了&#xff01;近期&#xff0c;初创公司美国机器人创业公司Figure发布首个基于OpenAI多模态大模型的人型机器人Figure 01。现在直接给LLM造了个身体&#xff0c;具体来说是个OpenAI训练的多模态大模型。 Figure AI发布了一段引人注目的视频&…

计算机硕士,毕业直接后端开发岗,选择C++还是java?

我自己是一名工作多年的C程序员&#xff0c;大学学习的编程语言就是C/C&#xff0c;参加工作后自学了Python、Java、Golang等语言。 现在从事自动驾驶行业的工作&#xff0c;工作中主要使用的编程语言是C和Python。在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整…

外包干了15天,技术退步明显。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;2019年我通过校招踏入了南京一家软件公司&#xff0c;开始了我的职业生涯。那时的我&#xff0c;满怀热血和憧憬&#xff0c;期待着在这个行业中闯出一片天地。然而&#xff0c;随着时间的推移&#xff0c;我发现自己逐渐陷入…

力扣热门算法题 59. 螺旋矩阵 II,60. 排列序列,61. 旋转链表

59. 螺旋矩阵 II&#xff0c;60. 排列序列&#xff0c;61. 旋转链表&#xff0c;每题做详细思路梳理&#xff0c;配套Python&Java双语代码&#xff0c; 2024.03.21 可通过leetcode所有测试用例。 目录 59. 螺旋矩阵 II 解题思路 完整代码 Java Python 60. 排列序列 …

蓝桥杯:模拟、枚举

目录 引言一、修剪灌木二、特殊年份三、刷题统计四、日期问题五、六、七、八、九、 引言 本篇文章主要介绍蓝桥杯的模拟和枚举的题目&#xff0c;这种题在 B B B 组还是比较简单的&#xff0c;后续也会一直往里加新的真题&#xff0c;加油&#xff01; 一、修剪灌木 标签&am…

蓝桥杯算法练习系统—金属采集(树形dp)

问题描述 人类在火星上发现了一种新的金属&#xff01;这些金属分布在一些奇怪的地方&#xff0c;不妨叫它节点好了。一些节点之间有道路相连&#xff0c;所有的节点和道路形成了一棵树。一共有 n 个节点&#xff0c;这些节点被编号为 1~n 。人类将 k 个机器人送上了火星&…

消息队列—RabbitMQ如何保证消息可靠性?

1. 如何保证消息的可靠性&#xff1f; 先来看看我们的万年老图&#xff0c;从图上我们大概可以看出来一个消息会经历四个节点&#xff0c;只有保证这四个节点的可靠性才能保证整个系统的可靠性。 生产者发出后保证到达了MQ。MQ收到消息保证分发到了消息对应的Exchange。Exchan…

网络基础(一)初识

1、计算机网络背景 1.1、网络发展 1. 独立模式: 计算机之间相互独立&#xff1b; 2. 网络互联: 多台计算机连接在一起&#xff0c;完成数据共享&#xff1b; 3. 局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起; 4. 广域网WAN: 将远隔千里的计算机都连在一起;…

vue3 报错 require is not defined

问题 require is not defined 原因 vite 不支持require的用法&#xff0c; webpack是支持的 解决 方法一&#xff1a; 更改vite使用语法 vite官网 方法二 安装转换插件vite-plugin-require-transform 仓库地址 参考 关于Vite不能使用require问题 方法二Vite 踩坑 —— …

PCL点云处理之最小中值平方(Lmeds法)拟合平面(二百三十四)

PCL点云处理之 最小中值平方法(Lmeds)拟合平面(二百三十四) 一、算法介绍一、拟合原理二、具体实现1.代码2.结果一、算法介绍 (本文提供详细注释,输出拟合平面参数和平面点云) Lmeds(Least Median of Squares)是一种统计学方法,用于拟合数据并减少异常值对拟合结果…

MySQL索引(图文并茂)

目录 一、索引的概念 二、索引的作用 三、创建索引的原则依据 四、索引的分类和创建 1、索引的分类 2、索引的创建 2.1 普通索引 2.1.1 直接创建索引 2.1.2 修改表方式创建 2.1.3 创建表的时候指定索引 2.2 唯一索引 2.2.1 直接创建唯一索引 2.2.2 修改表方式创建 …