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 相关文章推荐
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
Nov 08 Javascript
js中用window.open()打开多个窗口的name问题
Mar 13 Javascript
jQuery 实现自动填充邮箱功能(带下拉提示)
Oct 14 Javascript
javascript自定义滚动条实现代码
Apr 20 Javascript
jQuery实现鼠标选文字发新浪微博的方法
Apr 02 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
Nov 27 Javascript
ng-repeat指令在迭代对象时的去重方法
Oct 02 Javascript
Nuxt.js开启SSR渲染的教程详解
Nov 30 Javascript
angular6的table组件开发的实现示例
Dec 26 Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
Jun 10 Javascript
微信小程序实现吸顶特效
Jan 08 Javascript
Vue使用CDN引用项目组件,减少项目体积的步骤
Oct 30 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动态生成静态HTML网页的代码
2010/03/04 PHP
php全角字符转换为半角函数
2014/02/07 PHP
php支付宝接口用法分析
2015/01/04 PHP
一个对于Array的简单扩展
2006/10/03 Javascript
Javascript实例教程(19) 使用HoTMetal(3)
2006/12/23 Javascript
javascript 混合的构造函数和原型方式,动态原型方式
2009/12/07 Javascript
javascript利用初始化数据装配模版的实现代码
2010/11/17 Javascript
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
微信小程序之picker日期和时间选择器
2017/02/09 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
纯原生js实现贪吃蛇游戏
2020/04/16 Javascript
Angularjs2不同组件间的通信实例代码
2017/05/06 Javascript
让div运动起来 js实现缓动效果
2017/07/06 Javascript
Vue 项目代理设置的优化
2018/04/17 Javascript
js前端面试之同步与异步问题详解
2019/04/03 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
jquery轮播图插件使用方法详解
2020/07/31 jQuery
Python2和Python3中print的用法示例总结
2017/10/25 Python
Selenium 模拟浏览器动态加载页面的实现方法
2018/05/16 Python
python自动化报告的输出用例详解
2018/05/30 Python
python 构造三维全零数组的方法
2018/11/12 Python
Python完成哈夫曼树编码过程及原理详解
2019/07/29 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
应届生会计求职信
2013/11/11 职场文书
党的群众路线调研报告
2014/11/03 职场文书
2015年领班工作总结
2015/04/29 职场文书
新店开张宣传语
2015/07/13 职场文书
Java输出Hello World完美过程解析
2021/06/13 Java/Android
MySQL限制查询和数据排序介绍
2022/03/25 MySQL