讲述小程序之组件picker(从底部弹起的滚动选择器)

简介: 讲述小程序之组件picker(从底部弹起的滚动选择器)

picker(从底部弹起的滚动选择器)

image.png

·header-text                解释:选择器的标题,仅安卓可用

·mode                         解释:选择器类型


mode的类型包括:

image.png


举例:

1.selector:普通选择器

wxml:

<view><view>普通选择器</view><pickerbindchange="bindPickerChange"value="{{index}}"range="{{array}}"><view>      当前选择:{{array[index]}}
</view></picker></view>

js:

Page({
data: {
array: ['剑豪', '剑圣', '剑姬', '剑魔'],
objectArray: [
      {
id: 0,
name: '剑豪'      },
      {
id: 1,
name: '剑圣'      },
      {
id: 2,
name: '剑姬'      },
      {
id: 3,
name: '剑魔'      }
    ],
index: 0,
    },
bindPickerChange: function(e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
this.setData({
index: e.detail.value    })
  },
})

效果展示:

26.gif

2.multiSelector:多列选择器

wxml:

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

js:

Page({
data: {
multiArray: [['英雄联盟', '地下城与勇士'], ['上路', '打野', '中路', 'ADC', '辅助',], ['诺手', '狗头']],
objectMultiArray: [
      [
        {
id: 0,
name: '英雄联盟'        },
        {
id: 1,
name: '地下城与勇士'        }
      ], [
        {
id: 0,
name: '上路'        },
        {
id: 1,
name: '打野'        },
        {
id: 2,
name: '中路'        },
        {
id: 3,
name: 'ADC'        },
        {
id: 3,
name: '辅助'        }
      ], [
        {
id: 0,
name: '诺手'        },
        {
id: 1,
name: '狗头'        }
      ]
    ],
multiIndex: [0, 0, 0],
    },
bindMultiPickerColumnChange: function (e) {
console.log('修改的列为', e.detail.column, ',值为', e.detail.value);
vardata= {
multiArray: this.data.multiArray,
multiIndex: this.data.multiIndex    };
data.multiIndex[e.detail.column] =e.detail.value;
switch (e.detail.column) {
case0:
switch (data.multiIndex[0]) {
case0:
data.multiArray[1] = ['上路', '打野', '中路', 'ADC', '辅助'];
data.multiArray[2] = ['诺手', '狗头'];
break;
case1:
data.multiArray[1] = ['鬼剑', '枪剑', '魔法师'];
data.multiArray[2] = ['红眼', '阿修罗'];
break;
        }
data.multiIndex[1] =0;
data.multiIndex[2] =0;
break;
case1:
switch (data.multiIndex[0]) {
case0:
switch (data.multiIndex[1]) {
case0:
data.multiArray[2] = ['诺手', '狗头'];
break;
case1:
data.multiArray[2] = ['狮子狗','螳螂','豹女','蜘蛛'];
break;
case2:
data.multiArray[2] = ['亚索', '冰女','卡牌','艾克'];
break;
case3:
data.multiArray[2] = ['烬', '卡沙', '女枪','卢锡安'];
break;
case4:
data.multiArray[2] = ['泰坦', '莫甘娜', '派克', '日女'];
break;
            }
break;
case1:
switch (data.multiIndex[1]) {
case0:
data.multiArray[2] = ['红眼', '阿修罗'];
break;
case1:
data.multiArray[2] = ['机械', '前线'];
break;
case2:
data.multiArray[2] = ['逐风', '元素', '嗜血'];
break;
            }
break;
        }
data.multiIndex[2] =0;
break;
    }
console.log(data.multiIndex);
this.setData(data);
  },
})

效果:

27.gif

3.time:时间选择器

wxml:

<view><view>时间选择器</view><pickermode="time"value="{{time}}"start="09:01"end="21:01"bindchange="bindTimeChange"><view>      当前选择: {{time}}
</view></picker></view>

js:

Page({
data: {
time: '12:01'    },
bindTimeChange: function(e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
this.setData({
time: e.detail.value    })
  },
})

效果:

28.gif

4.date:日期选择器

wxml:

<view><view>日期选择器</view><pickermode="date"value="{{date}}"start="2000-09-01"end="2050-09-01"bindchange="bindDateChange"><view>      当前选择: {{date}}
</view></picker></view>

js:

Page({
data: {
date: '2016-09-01'    },
bindDateChange: function(e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
this.setData({
date: e.detail.value    })
  },
})

效果:

29.gif

5. region:省市区选择器

wxml:

<view><view>省市区选择器</view><pickermode="region"bindchange="bindRegionChange"value="{{region}}"custom-item="{{customItem}}"><view>      当前选择:{{region[0]}},{{region[1]}},{{region[2]}}
</view></picker></view>

js:

Page({
data: {
region: ['广东省', '广州市', '海珠区']
    },
bindRegionChange: function (e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
this.setData({
region: e.detail.value    })
  }
})

30.gif



























目录
相关文章
|
2月前
|
小程序 数据库
【微信小程序-原生开发】实用教程10 - 动态的新增、修改、删除(含微信云数据库的新增、修改、删除,表单弹窗、确认弹窗、日期选择器、单行输入框、多行输入框、滑动组件的使用)
【微信小程序-原生开发】实用教程10 - 动态的新增、修改、删除(含微信云数据库的新增、修改、删除,表单弹窗、确认弹窗、日期选择器、单行输入框、多行输入框、滑动组件的使用)
52 0
|
2月前
|
小程序 API 数据库
【微信小程序-原生开发】实用教程09 - 可滚动选项,动态列表-步骤条(含事件传参),动态详情(含微信云查询单条数据 doc)
【微信小程序-原生开发】实用教程09 - 可滚动选项,动态列表-步骤条(含事件传参),动态详情(含微信云查询单条数据 doc)
58 0
|
1月前
|
JSON 小程序 前端开发
终于搞懂了!微信小程序的渲染机制及组件使用
【8月更文挑战第8天】微信小程序的渲染机制及组件使用
74 3
终于搞懂了!微信小程序的渲染机制及组件使用
|
1月前
|
人工智能 小程序 编译器
Ant Design Mini 问题之Antd Mini 使用小程序函数式组件(functional-mini)来确保组件逻辑适配到双端,如何实现
Ant Design Mini 问题之Antd Mini 使用小程序函数式组件(functional-mini)来确保组件逻辑适配到双端,如何实现
|
1月前
|
小程序 前端开发 API
Ant Design Mini 问题之在微信小程序中,由于不支持slot特性,Ant Design Mini的什么组件功能受到了限制,如何解决
Ant Design Mini 问题之在微信小程序中,由于不支持slot特性,Ant Design Mini的什么组件功能受到了限制,如何解决
|
1月前
|
小程序
|
2月前
|
小程序
跨端技术问题之页面或组件样式在小程序、小程序插件和小程序分包中有什么差异
跨端技术问题之页面或组件样式在小程序、小程序插件和小程序分包中有什么差异
|
2月前
|
小程序
【微信小程序-原生开发】列表 - 拖拽排序(官方组件 movable-area 和 movable-view 的用法)
【微信小程序-原生开发】列表 - 拖拽排序(官方组件 movable-area 和 movable-view 的用法)
168 0
|
2月前
|
小程序 数据库
【微信小程序-原生开发】实用教程15 - 列表的排序、搜索(含云数据库常用查询条件的使用方法,t-search 组件的使用)
【微信小程序-原生开发】实用教程15 - 列表的排序、搜索(含云数据库常用查询条件的使用方法,t-search 组件的使用)
58 0
|
2月前
|
JSON 小程序 数据库
【微信小程序-原生开发】实用教程14 - 列表的分页加载,触底加载更多(含无更多数据的提醒和显示,自定义组件)
【微信小程序-原生开发】实用教程14 - 列表的分页加载,触底加载更多(含无更多数据的提醒和显示,自定义组件)
82 0