diff --git a/example/PickerTest/index.js b/example/PickerTest/index.js
index dc0210a84f5e6e8ff6b4bb76734a5ecbe4d36c8b..4183c5a01d806d78d1acc10f213008205f6e8a41 100644
--- a/example/PickerTest/index.js
+++ b/example/PickerTest/index.js
@@ -19,7 +19,6 @@ class PickerTest extends Component {
constructor(props, context) {
super(props, context);
- this._showDatePicker();
}
_createDateData() {
@@ -113,6 +112,78 @@ class PickerTest extends Component {
Picker.show();
}
+ _showTimePicker() {
+ let years = [],
+ months = [],
+ days = [],
+ hours = [],
+ minutes = [];
+
+ for(let i=1;i<51;i++){
+ years.push(i+1980);
+ }
+ for(let i=1;i<13;i++){
+ months.push(i);
+ hours.push(i);
+ }
+ for(let i=1;i<32;i++){
+ days.push(i);
+ }
+ for(let i=1;i<61;i++){
+ minutes.push(i);
+ }
+ let pickerData = [years, months, days, ['am', 'pm'], hours, minutes];
+ let date = new Date();
+ let selectedValue = [
+ [date.getFullYear()],
+ [date.getMonth()+1],
+ [date.getDate()],
+ [date.getHours() > 11 ? 'pm' : 'am'],
+ [date.getHours() === 12 ? 12 : date.getHours()%12],
+ [date.getMinutes()]
+ ];
+ Picker.init({
+ pickerData,
+ selectedValue,
+ pickerTitleText: 'Select Date and Time',
+ wheelFlex: [2, 1, 1, 2, 1, 1],
+ onPickerConfirm: pickedValue => {
+ console.log('area', pickedValue);
+ },
+ onPickerCancel: pickedValue => {
+ console.log('area', pickedValue);
+ },
+ onPickerSelect: pickedValue => {
+ let targetValue = [...pickedValue];
+ if(parseInt(targetValue[1]) === 2){
+ if(targetValue[0]%4 === 0 && targetValue[2] > 29){
+ targetValue[2] = 29;
+ }
+ else if(targetValue[0]%4 !== 0 && targetValue[2] > 28){
+ targetValue[2] = 28;
+ }
+ }
+ else if(targetValue[1] in {4:1, 6:1, 9:1, 11:1} && targetValue[2] > 30){
+ targetValue[2] = 30;
+
+ }
+ // forbidden some value such as some 2.29, 4.31, 6.31...
+ if(JSON.stringify(targetValue) !== JSON.stringify(pickedValue)){
+ // android will return String all the timeļ¼but we put Number into picker at first
+ // so we need to convert them to Number again
+ targetValue.map((v, k) => {
+ if(k !== 3){
+ targetValue[k] = parseInt(v);
+ }
+ });
+ Picker.select(targetValue);
+ pickedValue = targetValue;
+ }
+ }
+ });
+ Picker.show();
+ }
+
_toggle() {
Picker.toggle();
}
@@ -129,6 +200,9 @@ class PickerTest extends Component {
DatePicker
+
+ TimePicker
+
AreaPicker
diff --git a/index.js b/index.js
index f951ed30e15edb51f0b2dbc065e643111a6695fc..a4706b7b2b66d25ad80d0283b80dadd212d3edec 100644
--- a/index.js
+++ b/index.js
@@ -56,9 +56,14 @@ export default {
},
select(arr, fn) {
- Picker.select(arr, err => {
- typeof fn === 'function' && fn(err);
- });
+ if(ios){
+ Picker.select(arr);
+ }
+ else if(android){
+ Picker.select(arr, err => {
+ typeof fn === 'function' && fn(err);
+ });
+ }
},
toggle(){
diff --git a/package.json b/package.json
index 84833801c327f8b8116b163979ae2b530a3526ee..6cecb855be832a83bc916abdb0393a1aac04999e 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "react-native-picker",
- "version": "4.0.17",
+ "version": "4.0.18",
"description": "",
"main": "index.js",
"scripts": {