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复制内容到剪切板的实例代码(兼容IE与火狐)
Nov 19 Javascript
利用jQuary实现文字浮动提示效果示例代码
Dec 26 Javascript
AngularJS 实现按需异步加载实例代码
Oct 18 Javascript
AngularJS  $modal弹出框实例代码
Aug 24 Javascript
jQuery内容过滤选择器用法示例
Sep 09 Javascript
jquery+css3问卷答题卡翻页动画效果示例
Oct 26 Javascript
bootstrap fileinput 上传插件的基础使用
Feb 17 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
Jul 18 Javascript
Javascript实现跨域后台设置拦截的方法详解
Aug 04 Javascript
详解vuex状态管理模式
Nov 01 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
Feb 06 Javascript
es6函数之尾递归用法实例分析
Apr 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 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
2013/06/25 PHP
PHP实现图片自动清理的方法
2015/07/08 PHP
培养自己的php编码规范
2015/09/28 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
php实现的双色球算法示例
2017/06/20 PHP
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
juqery 学习之三 选择器 可见性 元素属性
2010/11/25 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
采用call方式实现js继承
2014/05/20 Javascript
理解javascript回调函数
2014/12/28 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
详解将微信小程序接口Promise化并使用async函数
2019/08/05 Javascript
vue框架制作购物车小球动画效果实例代码
2019/09/26 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
JS typeof fn === 'function' &amp;&amp; fn()详解
2020/08/22 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
2020/09/10 Javascript
python的id()函数解密过程
2012/12/25 Python
django写用户登录判定并跳转制定页面的实例
2019/08/21 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
2020/04/10 Python
python三引号如何输入
2020/07/06 Python
使用PyCharm安装pytest及requests的问题
2020/07/31 Python
python用Configobj模块读取配置文件
2020/09/26 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
使用CSS3实现字体颜色渐变的实现
2020/08/10 HTML / CSS
Giglio美国站:意大利奢侈品购物网
2018/02/10 全球购物
Michael Kors加拿大官网:购买设计师手袋、手表、鞋子、服装等
2019/03/16 全球购物
香奈儿美国官网:CHANEL美国
2020/05/20 全球购物
第二层交换机和路由器的区别?第三层交换机和路由器的区别?
2013/05/23 面试题
目标管理责任书
2014/04/15 职场文书
公司员工手册范本
2015/05/14 职场文书
观后感开头
2015/06/19 职场文书
投诉信回复范文
2015/07/03 职场文书
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL