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对数组的操作技巧整理
Mar 25 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
May 20 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
Dec 31 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
Dec 23 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
May 30 Javascript
Vue.js 中的 v-show 指令及用法详解
Nov 19 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
Apr 17 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
Jun 24 Javascript
JS实现简单随机3D骰子
Oct 24 Javascript
VUE解决 v-html不能触发点击事件的问题
Oct 28 Javascript
js this 绑定机制深入详解
Apr 30 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
Oct 21 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
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
php empty() 检查一个变量是否为空
2011/11/10 PHP
php计算多个集合的笛卡尔积实例详解
2017/02/16 PHP
PHP实现将标点符号正则替换为空格的方法
2017/08/09 PHP
Laravel中unique和exists验证规则的优化详解
2018/01/28 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
Javascript学习笔记二 之 变量
2010/12/15 Javascript
JavaScript中链式调用之研习
2011/04/07 Javascript
js jquery数组介绍
2012/07/15 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
2014/07/17 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
jQuery实现区域打印功能代码详解
2016/06/17 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
2016/12/26 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
使用jQuery.Pin垂直滚动时固定导航
2017/05/24 jQuery
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
JavaScript实现随机数生成器(去重)
2017/10/13 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
Python中pygame安装方法图文详解
2015/11/11 Python
Python之时间和日期使用小结
2019/02/14 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
html5拖拽应用记录及注意点
2020/05/27 HTML / CSS
《生命的药方》教学反思
2014/04/08 职场文书
求职信标题怎么写
2014/05/26 职场文书
管理标语大全
2014/06/24 职场文书
写给医生的感谢信
2015/01/22 职场文书
公司劳动纪律管理制度
2015/08/04 职场文书
学校2016年九九重阳节活动总结
2016/04/01 职场文书
Javascript 解构赋值详情
2021/11/17 Javascript