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 相关文章推荐
JavaScript子窗口ModalDialog中操作父窗口对像
Dec 11 Javascript
javascript的原生方法获取数组中的最大(最小)值
Dec 19 Javascript
AJAX跨域请求json数据的实现方法
Nov 11 Javascript
JS不间断向上滚动效果代码
Dec 25 Javascript
js实现点击链接后窗口缩小并居中的方法
Mar 02 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
Mar 04 Javascript
Node.js读写文件之批量替换图片的实现方法
Sep 07 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
Nov 05 Javascript
JS非行间样式获取函数的实例代码
Jun 05 Javascript
教你如何用Node实现API的转发(某音乐)
Sep 20 Javascript
JavaScript布尔运算符原理使用解析
May 06 Javascript
jQuery实现B2B网站后台管理系统侧导航
Jul 08 jQuery
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基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
推荐个功能齐全的发送PHP邮件类
2007/01/03 PHP
PHP人民币金额数字转中文大写的函数代码
2013/02/27 PHP
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
2015/05/08 PHP
php采集神器cURL使用方法详解
2016/02/19 PHP
PHP实现随机发放扑克牌
2020/04/21 PHP
jquery 层次选择器siblings与nextAll的区别介绍
2013/08/02 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
.NET微信公众号开发之创建自定义菜单
2015/07/16 Javascript
JS Array.slice 截取数组的实现方法
2016/01/02 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
微信小程序 Video API实例详解
2016/10/02 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
深入理解JavaScript创建对象的多种方式以及优缺点
2017/06/01 Javascript
vue组件父子间通信之综合练习(聊天室)
2017/11/07 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
Nuxt升级2.0.0时出现的问题(小结)
2018/10/08 Javascript
vsCode安装使用教程和插件安装方法
2020/08/24 Javascript
微信小程序template模版的使用方法
2019/04/13 Javascript
5个你不知道的JavaScript字符串处理库(小结)
2020/06/01 Javascript
Vue绑定用户接口实现代码示例
2020/11/04 Javascript
Python实现对一个函数应用多个装饰器的方法示例
2018/02/09 Python
python3处理含有中文的url方法
2018/05/10 Python
python 处理string到hex脚本的方法
2018/10/26 Python
opencv python Canny边缘提取实现过程解析
2020/02/03 Python
服务器端jupyter notebook映射到本地浏览器的操作
2020/04/14 Python
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
日本最大的彩色隐形眼镜销售网站:CharmColor
2020/09/09 全球购物
积极贯彻学习两会精神总结
2014/03/17 职场文书
2015公司年度工作总结
2015/05/14 职场文书
热血教师观后感
2015/06/10 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
go 实现简易端口扫描的示例
2021/05/22 Golang