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翻页效果
Jul 23 Javascript
javascript 面向对象,实现namespace,class,继承,重载
Oct 29 Javascript
js 函数的执行环境和作用域链的深入解析
Nov 01 Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
Feb 03 Javascript
jQuery对Select的操作大集合(收藏)
Dec 28 Javascript
JavaScript实现控制打开文件另存为对话框的方法
Apr 17 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
Jun 13 Javascript
详解VueJS应用中管理用户权限
Feb 02 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
Mar 01 Javascript
微信小程序将字符串生成二维码图片的操作方法
Jul 17 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
Dec 11 jQuery
javascript实现点击产生随机图形
Jan 25 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
php 获取可变函数参数的函数
2009/08/26 PHP
PHP XML操作类DOMDocument
2009/12/16 PHP
php下网站防IP攻击代码,超级实用
2010/10/24 PHP
php入门学习知识点三 PHP上传
2011/07/14 PHP
Laravel实现搜索的时候分页并携带参数
2019/10/15 PHP
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
2006/11/07 Javascript
prototype 1.5相关知识及他人笔记
2006/12/16 Javascript
jQuery 无刷新分页实例代码
2013/11/12 Javascript
$.each遍历对象、数组的属性值并进行处理
2014/07/18 Javascript
详解Javascript事件驱动编程
2016/01/03 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
详解JS中遍历语法的比较
2017/04/07 Javascript
bootstrap常用组件之头部导航实现代码
2017/04/20 Javascript
Vue实现一个返回顶部backToTop组件
2017/07/25 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
Python连接PostgreSQL数据库的方法
2016/11/28 Python
Django添加sitemap的方法示例
2018/08/06 Python
Python split() 函数拆分字符串将字符串转化为列的方法
2019/07/16 Python
多个python文件调用logging模块报错误
2020/02/12 Python
Python实现鼠标自动在屏幕上随机移动功能
2020/03/14 Python
python 追踪except信息方式
2020/04/25 Python
CSS3 实现弹幕的示例代码
2017/08/07 HTML / CSS
正宗的日本零食和糖果订阅盒:Bokksu
2019/11/21 全球购物
服装电子商务创业计划书
2014/01/30 职场文书
企业安全生产责任书范本
2014/07/28 职场文书
关于诚信的活动方案
2014/08/18 职场文书
2014年最新大专生职业生涯规划书范文
2014/09/13 职场文书
幼儿园工作总结2015
2015/04/01 职场文书
餐厅收银员岗位职责
2015/04/07 职场文书
使用Django实现商城验证码模块的方法
2021/06/01 Python
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技
Python闭包的定义和使用方法
2022/04/11 Python