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 相关文章推荐
jquery 子窗口操作父窗口的代码
Sep 21 Javascript
js 实现css风格选择器(压缩后2KB)
Jan 12 Javascript
深入分析JSONP跨域的原理
Dec 10 Javascript
分享网页检测摇一摇实例代码
Jan 14 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
Mar 24 jQuery
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
Jul 11 Javascript
Angular使用cli生成自定义文件、组件的方法
Sep 04 Javascript
JS canvas绘制五子棋的棋盘
May 28 Javascript
如何获取vue单文件自身源码路径
May 06 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
Nov 13 Javascript
JS实现容器模块左右拖动效果
Jan 14 Javascript
解决vue自定义组件@click点击失效问题
Apr 30 Vue.js
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
实用函数7
2007/11/08 PHP
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
PHP实现图片旋转效果实例代码
2014/10/01 PHP
php实现mysql备份恢复分卷处理的方法
2014/12/26 PHP
php简单计算年龄的方法(周岁与虚岁)
2016/12/06 PHP
php登录超时检测功能实例详解
2017/03/21 PHP
分享十五个最佳jQuery 幻灯插件和教程
2010/03/27 Javascript
jQuery中需要注意的细节问题小结
2011/12/06 Javascript
JavaScript之编码规范 推荐
2012/05/23 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
javascript作用域和闭包使用详解
2014/04/25 Javascript
jQuery 中DOM 操作详解
2015/01/13 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
2016/02/18 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
html5 canvas 详细使用教程
2017/01/20 Javascript
vue滚动插件better-scroll使用详解
2019/10/18 Javascript
js canvas实现星空连线背景特效
2019/11/01 Javascript
js实现简易拖拽的示例
2020/10/26 Javascript
[02:44]DOTA2英雄基础教程 钢背兽
2013/12/19 DOTA
[01:17]Ti4 循环赛第一日回顾
2014/07/11 DOTA
[06:16]DOTA2守卫传承者——职业选手谈心路历程
2015/02/26 DOTA
python批量查询、汉字去重处理CSV文件
2018/05/31 Python
详解Python给照片换底色(蓝底换红底)
2019/03/22 Python
为什么说python更适合树莓派编程
2020/07/20 Python
英国儿童图书网站:Scholastic
2017/03/26 全球购物
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
活动总结新闻稿
2014/08/30 职场文书
网吧七夕活动策划方案
2014/08/31 职场文书
村当支部个人对照检查材料思想汇报
2014/10/06 职场文书
通知的格式范文
2015/04/27 职场文书
社区低保工作总结2015
2015/07/23 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
2022/04/02 Servers
在 Python 中利用 Pool 进行多线程
2022/04/24 Python