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


Posted in Javascript onSeptember 12, 2017

本教程的实现效果如下:

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

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

三方组件的地址: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 就能看到效果了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js Html结构转字符串形式显示代码
Nov 15 Javascript
将Datatable转化成json发送前台实现思路
Sep 06 Javascript
js判断字符是否是汉字的两种方法小结
Jan 03 Javascript
js 判断控件获得焦点的示例代码
Mar 04 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
Feb 26 Javascript
使用jQuery获得内容以及内容的属性
Feb 26 Javascript
AngularJs  Creating Services详解及示例代码
Sep 02 Javascript
JavaScript中的await/async的作用和用法
Oct 31 Javascript
JS前端加密算法示例
Dec 22 Javascript
基于Vue中使用节流Lodash throttle详解
Oct 30 Javascript
Ajax实现局部刷新的方法实例
Mar 31 Javascript
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
Jun 15 Javascript
JavaScript中递归实现的方法及其区别
Sep 12 #Javascript
详解react-native-fs插件的使用以及遇到的坑
Sep 12 #Javascript
React中jquery引用的实现方法
Sep 12 #jQuery
JS+canvas动态绘制饼图的方法示例
Sep 12 #Javascript
详解react-router4 异步加载路由两种方法
Sep 12 #Javascript
JS+canvas绘制的动态机械表动画效果
Sep 12 #Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
Sep 12 #Javascript
You might like
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
在同一窗体中使用PHP来处理多个提交任务
2006/10/09 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
2014/04/09 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
详解PHP使用Redis存储session时的一个Warning定位
2017/07/05 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
js null undefined 空区别说明
2010/06/13 Javascript
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
2011/04/16 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
Jquery实现仿京东商城省市联动菜单
2015/11/19 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
简单实现js页面切换功能
2021/01/10 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
js实现ATM机存取款功能
2020/10/27 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
使用PDB简单调试Python程序简明指南
2015/04/25 Python
python实现计算倒数的方法
2015/07/11 Python
python黑魔法之参数传递
2016/02/12 Python
深入理解Python中的super()方法
2017/11/20 Python
Django项目开发中cookies和session的常用操作分析
2018/07/03 Python
解决安装pycharm后不能执行python脚本的问题
2019/01/19 Python
Python中的集合介绍
2019/01/28 Python
python带参数打包exe及调用方式
2019/12/21 Python
Python  word实现读取及导出代码解析
2020/07/09 Python
Python logging模块进行封装实现原理解析
2020/08/07 Python
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
2012/06/04 HTML / CSS
HTML5新增加的功能详解
2016/09/05 HTML / CSS
Bailey帽子官方商店:Bailey Hats
2018/09/25 全球购物
法人代表任命书范本
2014/06/05 职场文书
群众路线教育实践活动心得体会(四风)
2014/11/03 职场文书
2015年语文教师工作总结
2015/05/25 职场文书
Opencv中cv2.floodFill算法的使用
2021/06/18 Python
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python