react-native-picker
react-native-picker copied to clipboard
纯JS实现的一个高效流畅的日期选择器和区域选择器,支持android、ios
react-native-pickers
纯JS实现Picker,还是有点难度的,需要涉及到RN的性能优化(联动不能使用setState来更新)、
自定义手势、自定义点击以及动画等。
其他Dialog只是因为Picker是基于项目的BaseDialog扩展来的,就一并整理发布。

安装:
yarn add react-native-pickers
yarn add react-native-svg
react-native link react-native-svg
使用:
| 属性 | 默认值 | 描述 | 截图 |
|---|---|---|---|
| selectedValue | ['香港', '香港', '中西區'] | 选中 |
|
| areaJson | null | 地址数据源 | |
| confirmText | '确定' | 确定选择文本 | |
| confirmTextSize | 14 | 确定选择文本字体大小 | |
| confirmTextColor | '#333333' | 确定选择字体颜色 | |
| cancelText | '取消' | 取消选择文本 | |
| cancelTextSize | 14 | 取消选择文本字体大小 | |
| cancelTextColor | '#333333' | 取消选择文本字体颜色 | |
| itemTextColor | 0x333333ff | item正常颜色,仅支持16进制数字 |
|
| itemSelectedColor | 0x1097D5ff | item选择颜色,仅支持16进制数字 |
|
| itemHeight | 40 | item高度 | |
| onPickerCancel | null | 取消选择回调 | |
| onPickerConfirm | null | 确认选择回调 |
| 属性 | 默认值 | 描述 | 截图 |
|---|---|---|---|
| itemTextColor | 0x333333ff | item正常颜色,仅支持16进制数字 |
|
| itemSelectedColor | 0x1097D5ff | item选择颜色,仅支持16进制数字 |
|
| onPickerCancel | null | 取消选择回调 | |
| onPickerConfirm | null | 确认选择回调 | |
| unit | ['年', '月', '日'] | 单位 | |
| selectedValue | [
new Date().getFullYear() + '年', new Date().getMonth() + 1 + '月', new Date().getDate() + '日'] |
选中 | |
| startYear | 1990 | 起始年份 | |
| endYear | new Date().getFullYear() | 截至年份 | |
| cancelText | '取消' | 取消选择文本 | |
| cancelTextSize | 14 | 取消选择文本字体大小 | |
| cancelTextColor | '#333333' | 取消选择文本字体颜色 | |
| itemTextColor | 0x333333ff | item正常颜色,仅支持16进制数字 |
|
| itemSelectedColor | 0x1097D5ff | item选择颜色,仅支持16进制数字 |
|
| onPickerCancel | null | 取消选择回调 | |
| onPickerConfirm | null | 确认选择回调 | |
| confirmText | '确定' | 确定选择文本 | |
| confirmTextSize | 14 | 确定选择文本字体大小 | |
| confirmTextColor | '#333333' | 确定选择字体颜色 | |
| cancelText | '取消' | 取消选择文本 | |
| cancelTextSize | 14 | 取消选择文本字体大小 | |
| cancelTextColor | '#333333' | 取消选择文本字体颜色 | |
| itemHeight | 40 | item高度 | |
| HH | true | 是否显示小时 | |
| mm | true | 是否显示分钟 | |
| xx | false | 是否显示秒 |
| 属性 | 默认值 | 描述 | 截图 |
|---|---|---|---|
| messageText | 'Alert Message' | 消息文本 |
|
| messageTextColor | '#444444' | 消息文本字体颜色 | |
| messageTextSize | 14 | 消息文本字体大小 | |
| negativeText | 'cancel' | 取消文本 | |
| negativeColor | '#666666' | 取消文本颜色 | |
| negativeSize | 16 | 取消文本字体大小 | |
| positiveText | 'ok' | 确定文本 | |
| positiveColor | '#1097D5' | 确定文本颜色 | |
| positiveSize | 16 | 确定文本字体大小 | |
| onPress | null |
positive(确定)返回true or
negative(取消)返回false
|
| 属性 | 默认值 | 描述 | 截图 |
|---|---|---|---|
| items | ['a', 'b', 'c'] | 列表数据,可以string、object(需要指定itemKey) |
|
| itemKey | 'key' |
当item为object时,来指定显示的属性items:[{id:0, value: 'v1'},{id:0, value: 'v1'}]itemKey设为'value',则等同于 |
|
| itemStyle |
{ fontSize: 14, fontWeight: '400', color: '#333333' } |
列表文字样式 | |
| cancel | true | 是否在列表最后 增加 ‘取消’ 项 | |
| cancelText | '取消' | 取消项文本 | |
| cancelTextStyle |
{ fontSize: 14, fontWeight: '400', color: '#999999' } |
取消文本字体样式 | |
| onPress | null | 返回选中index |
| 属性 | 默认值 | 描述 | 截图 |
|---|---|---|---|
| items | ['a', 'b', 'c'] | 列表数据,可以string、object (需要指定itemKey) |
|
| itemKey | 'key' |
当item为object时,来指定显示的属性items:[{id:0, value: 'v1'},{id:0, value: 'v1'}]itemKey设为'value',则等同于 |
|
| itemStyle |
{ fontSize: 14, fontWeight: '400', color: '#333333' } |
列表文字样式 | |
| selectColor | '#1097D5' | 选中颜色 | |
| normalColor | '#666666' | 未选中颜色 | |
| pointSize | 18 | 左侧选中标识大小 | |
| pointBorderRadius | 9 | 左侧选中标识边框弧度 | |
| confirmText | '确定' | 确定选择文本 | |
| confirmBtnColor | '#1097D5' | 确定选择按钮颜色 | |
| confirmTextColor | '#ffffff' | 确定选择文本颜色 | |
| onPress | null | 返回选中index |
| 属性 | 默认值 | 描述 | 截图 |
|---|---|---|---|
| title | '我要举报' | 标题文本 |
|
| titleSize | 16 | 标题文本字体大小 | |
| titleColor | '#333333' | 标题文本文本颜色 | |
| cancelText | '返回' | 取消文本 | |
| cancelSize | 14 | 取消文本字体大小 | |
| cancelColor | '#333333' | 取消文本字体颜色 | |
| btnText | '提交' | 提交文本 | |
| btnTextSize | 12 | 提交文本字体大小 | |
| btnTextColor | '#ffffff' | 提交文本字体颜色 | |
| btnBgColor | '#1097D5' | 提交按钮颜色 | |
| placeholder | '请尽量说明问题,我们将尽快处理...' | 输入框提示语 | |
| onSubmit | null | 返回输入的文本内容 | |
| InputDialog.show(text),显示dialog,text:用于编辑时,设置前值 | |||
| 属性 | 默认值 | 描述 | 截图 |
|---|---|---|---|
| title | '视频下载' | 标题文本 |
|
| titleSize | 16 | 标题文本字体大小 | |
| titleColor | '#333333' | 标题文本文本颜色 | |
| active | false | 按钮是否可点击 | |
| actionText | '打开' | 按钮文本 | |
| onAction | null | 点击按钮回调 | |
| totalTextColor | '#666666' | 总数文本字体颜色 | |
| totalTextSize | 12 | 总数文本字体大小 | |
| DownloadDialog.setProcess(0, '4.24MB'),设置当前进度,及下载文件总数 | |||
| 属性 | 默认值 | 描述 | 截图 |
|---|---|---|---|
| duration | 1500 | 显示时长(自动隐藏) |
|
| fontSize | 14 | message字体大小 | |
| textColor | '#ffffff' | message字体颜色 | |
| lineHeight | 20 | message字体行高 | |
| paddingH | 10 | 水平padding | |
| paddingV | 5 | 上下padding | |
| borderRadius | 5 | 背景圆角 | |
| backgroundColor | 0x00000099 | 背景颜色 | |
| ToastComponent.show('message'),显示‘message’toast。应放在navigation同层,全局唯一 | |||
| 属性 | 默认值 | 描述 |
|---|---|---|
| removeSubviews | true | dismiss,是否回收前景控件,拓展出来的子控件,不要动态设置改属性 |
| coverClickable | ture | 背景点击隐藏 |
| onCoverPress | null | 点击背景,dismiss回调 |
| showAnimationType | null | 入场动画方式 spring timing |
| 属性 | 默认值 | 描述 |
|---|---|---|
| itemTextColor | 0x333333ff | item正常颜色,仅支持16进制数字 |
| itemSelectedColor | 0x1097D5ff | item选择颜色,仅支持16进制数字 |
| itemHeight | 40 | item高度 |
| onPickerSelected | null | 选中时回调 |
| selectedIndex | 0 | 选中 |