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实现视频轮播在pc端与移动端均可
Sep 29 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
Jan 07 Javascript
javascript实现页面内关键词高亮显示代码
Apr 03 Javascript
bootstrap读书笔记之CSS组件(上)
Oct 17 Javascript
JavaScript阻止表单提交方法(附代码)
Aug 15 Javascript
js HTML5 canvas绘制图片的方法
Sep 08 Javascript
seajs实现强制刷新本地缓存的方法分析
Oct 16 Javascript
10个在JavaScript开发中常遇到的BUG
Dec 18 Javascript
微信小程序sessionid不一致问题解决
Aug 30 Javascript
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
Sep 29 Javascript
使用JS来动态操作css的几种方法
Dec 18 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
Nov 24 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中使用Oracle数据库(4)
2006/10/09 PHP
PHP冒泡排序算法代码详细解读
2011/07/17 PHP
一个PHP针对数字的加密解密类
2014/03/20 PHP
使用YUI+Ant 实现JS CSS压缩
2014/09/02 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
2016/10/19 PHP
Linux下 php7安装redis的方法
2018/11/01 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
javascript getElementsByTagName
2011/01/31 Javascript
15个款优秀的 jQuery 图片特效插件推荐
2011/11/21 Javascript
CSS(js)限制页面显示的文本字符长度
2012/12/27 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
JavaScript中的对象的extensible属性介绍
2014/12/30 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
2015/12/01 Javascript
关于JavaScript作用域你想知道的一切
2016/02/04 Javascript
Express框架之connect-flash详解
2017/05/31 Javascript
Vue 实现从小到大的横向滑动效果详解
2019/10/16 Javascript
深入了解JS之作用域和闭包
2020/06/16 Javascript
JavaScript文档加载模式以及元素获取
2020/07/28 Javascript
微信小程序向Java后台传输参数的方法实现
2020/12/10 Javascript
Python Web框架Pylons中使用MongoDB的例子
2013/12/03 Python
Python中的各种装饰器详解
2015/04/11 Python
浅析Python中的join()方法的使用
2015/05/19 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
python生成word合同的实例方法
2021/01/12 Python
html5使用canvas画空心圆与实心圆
2014/12/15 HTML / CSS
HTML5新增加的功能详解
2016/09/05 HTML / CSS
Servlet方面面试题
2016/09/28 面试题
2014年大学生党员评议表自我评价
2014/09/20 职场文书
房屋授权委托书范本
2014/10/07 职场文书
调任通知
2015/04/21 职场文书
七年级数学教学反思
2016/02/17 职场文书
Valheim服务器 Mod修改安装教程 【ValheimPlus】
2022/12/24 Servers