date-picker.js 1.21 KB
Newer Older
xwenliang's avatar
xwenliang committed
1
'use strict';
xwenliang's avatar
xwenliang committed
2 3 4 5 6 7 8
 
import React, {
	View,
	Text,
	TouchableOpacity,
	Dimensions
} from 'react-native';
xwenliang's avatar
xwenliang committed
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41

import Picker from 'react-native-picker';

function createDateData(){
	let date = {};
	for(let i=1950;i<2050;i++){
		let month = {};
		for(let j = 1;j<13;j++){
			let day = [];
			if(j === 2){
				for(let k=1;k<29;k++){
					day.push(k+'');
				}
			}
			else if(j in {1:1, 3:1, 5:1, 7:1, 8:1, 10:1, 12:1}){
				for(let k=1;k<32;k++){
					day.push(k+'');
				}
			}
			else{
				for(let k=1;k<31;k++){
					day.push(k+'');
				}
			}
			month[j+''] = day;
		}
		date[i+''] = month;
	}
	return date;
};

export default class DatePicker extends React.Component {

xwenliang's avatar
xwenliang committed
42
	_onPressHandle(){
xwenliang's avatar
xwenliang committed
43 44 45 46 47
		this.picker.toggle();
	}

	render(){
		return (
xwenliang's avatar
xwenliang committed
48 49 50 51 52 53
			<View style={{height: Dimensions.get('window').height}}>
				<TouchableOpacity style={{marginTop: 20}} onPress={this._onPressHandle.bind(this)}>
					<Text>点我</Text>
				</TouchableOpacity>
				<Picker
					ref={picker => this.picker = picker}
xwenliang's avatar
xwenliang committed
54
					style={{height: 320}}
xwenliang's avatar
xwenliang committed
55 56 57 58 59 60 61 62
					showDuration={300}
					pickerData={createDateData()}
					selectedValue={['2015年', '12月', '12日']}
					onPickerDone={(pickedValue) => {
						console.log(pickedValue);
					}}
				/>
			</View>
xwenliang's avatar
xwenliang committed
63 64 65
		);
	}
};