【经验分享】 自定义picker组件,拿走即用。

简介: 【经验分享】 自定义picker组件,拿走即用。

支付宝小程序的UI样式向原生靠齐,picker组件不满足设计小姐姐的要求,然后卑微的切图仔出来搞了个自定义的picker组件样式。

老规矩效果图:


实现方案:

组件抛出四个属性:

属性

默认值

描述

pickerIndex

[]

默认选中下标,即弹起时默认选中第几项

show

false

是否显示picker弹窗

list

[]

picker可选项列表

title

无

picker标题

组件JS, 接收父组件传递的值,以及抛出点击取消回调

Component({
  data: {},
  props: {
    pickerIndex: [], // 默认选中下标
    show: false, // 是否显示
    list: [], // 列表
    title: '' // 标题
  },
  methods: {
    // 取消按钮点击
    handlePickerCancle() {
      this.props.onCancle()
    },
    // 确定按钮点击
    handlePickerConfirm() {
      this.props.onConfirm({ key: this.data.pickerKey, value: this.data.pickerValue })
    },
    // picker切换
    handlePickerChange(e) {
      this.setData({
        pickerKey: e.detail.value[0],
        pickerValue: this.props.list[e.detail.value]
      })
    }
  }
})

页面引用方式:需注意默认选中第几项是个数组。

<qts-picker title="{{title}}" show="{{show}}" list="{{list}}" pickerIndex="{{index}}" onCancle="handleClick" onConfirm="handleConfirm" />
Page({
  data: {
    show: false, // 是否显示picker
    title: '薪资单位', // picker标题
    index: [2], // 默认选中第几项
    list: ['日','周','月','季','年'],
    key: '',
    value: ''
  },
  handleClick() {
    this.setData({
      show: !this.data.show
    })
  },
  handleConfirm(e) {
    console.log(e)
    this.setData({
      key: e.key,
      value: e.value
    })
    this.handleClick()
  }
})

完整代码片段如下:

https://pen.mini-code.com/s/dce92ada-f3c6-429a-8139-14ee583020bf

目录
相关文章
|
资源调度
yarn配置镜像源
node学习笔记
3790 0
yarn配置镜像源
|
小程序 JavaScript 前端开发
【经验分享】如何获取任意小程序appId及页面路径
【经验分享】如何获取任意小程序appId及页面路径
3340 8
|
资源调度 网络协议 JavaScript
npm,yarn使用,npm ,yarn 更换使用国内镜像源
npm,yarn使用,npm ,yarn 更换使用国内镜像源
|
前端开发 小程序
扩展uview复选组件库支持自定义图片+自定义内容
扩展uview复选组件库支持自定义图片+自定义内容
804 6
|
测试技术 API 开发者
Postman下载与安装全攻略:简单几步,高效上手!
本文介绍了如何从官方渠道下载并安装Postman,详细列出了安装步骤与注意事项,同时对比了国产工具Apifox的优势,探讨了API工具的发展趋势。
|
开发工具 git 索引
$ git revert -m v1.0.21 6003eb5f5b455f0a3dfb74f48f63878e7 error: option `mainline' expect
$ git revert -m v1.0.21 6003eb5f5b455f0a3dfb74f48f63878e7 error: option `mainline' expect
|
小程序 前端开发 Java
|
缓存 小程序 IDE
【每周一个小技巧】支付宝小程序自定义tabbar效果
【每周一个小技巧】支付宝小程序自定义tabbar效果
1122 2
|
小程序 IDE 开发工具
【新功能介绍】自定义tabBar功能来了!
【新功能介绍】自定义tabBar功能来了!
643 0
uniapp上传图片功能怎么实现?
uniapp上传图片功能怎么实现?