首页 > 编程 > JavaScript > 正文

react-native DatePicker日期选择组件的实现代码

2019-11-19 15:28:48
字体:
来源:转载
供稿:网友

本教程的实现效果如下:

为了实现其淡入/淡出的覆盖效果, 还有取消按钮, 在此用了一个三方的组件, 大家可以先安装一下:

三方组件的地址:https://github.com/eyaleizenberg/react-native-custom-action-sheet (可以看看,也可以直接按我的步骤走)

1. 在terminal的该工程目录下运行: npm install react-native-custom-action-sheet --save
2. 然后运行: npm start
3. 具体实现代码如下:

import React, { Component } from 'react'; import {  AppRegistry,  StyleSheet,  Text,  View,  TouchableHighlight,  DatePickerIOS } from 'react-native';  //这是一个三方组件 github地址:https://github.com/eyaleizenberg/react-native-custom-action-sheet var CustomActionSheet = require('react-native-custom-action-sheet');  class Demo extends Component {   state = {   datePickerModalVisible: false, //选择器显隐标记   chooseDate: new Date() //选择的日期  };   _showDatePicker () { //切换显隐标记   this.setState({datePickerModalVisible: !this.state.datePickerModalVisible});  };   _onDateChange (date) { //改变日期state   alert(date); //弹出提示框: 显示你选择日期   this.setState({    chooseDate: date   });  };   render() {    let datePickerModal = (  //日期选择器组件 (根据标记赋值为 选择器 或 空)    this.state.datePickerModalVisible ?    <CustomActionSheet     modalVisible={this.state.datePickerModalVisible} //显隐标记     onCancel={()=>this._showDatePicker()}> //点击取消按钮 触发事件      <View style={styles.datePickerContainer}>       <DatePickerIOS        mode={"datetime"}  //选择器模式: 'date'(日期), 'time'(时间), 'datetime'(日期和时间)        minimumDate={new Date()} //最小时间 (这里设置的是当前的时间)        minuteInterval={30} //最小时间间隔 (这里设置的是30分钟)        date={this.state.chooseDate} //默认的时间        onDateChange={this._onDateChange.bind(this)} //日期被修改时回调此函数       />       </View>     </CustomActionSheet> : null   );    return (    <View style={styles.container}>     <TouchableHighlight      style={{backgroundColor:'cyan', padding:5}}      onPress={()=>this._showDatePicker()} //按钮: 点击触发方法      underlayColor='gray'      >      <Text >show DatePick</Text>     </TouchableHighlight>     {datePickerModal} //日期选择组件    </View>   );  } }  const styles = StyleSheet.create({  container: {   flex: 1,   justifyContent: 'center',   alignItems: 'center',   backgroundColor: '#F5FCFF',  },  datePickerContainer: {   flex: 1,   borderRadius: 5,   justifyContent: 'center',   alignItems: 'center',   backgroundColor: 'white',   marginBottom: 10,  }, });  AppRegistry.registerComponent('Demo', () => Demo); 

写好了,在terminal中运行:react-native run-ios 就能看到效果了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表