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实现单继承和多继承的简单方法
Mar 29 Javascript
使用text方法获取Html元素文本信息示例
Sep 01 Javascript
jquery mobile界面数据刷新的实现方法
May 28 Javascript
Bootstrap表单控件学习使用
Mar 07 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
Sep 18 Javascript
WebGL three.js学习笔记之阴影与实现物体的动画效果
Apr 25 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
Aug 17 Javascript
如何使用webpack打包一个库library的方法步骤
Dec 18 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
Mar 02 Javascript
Javascript异步执行不按顺序解决方案
Apr 30 Javascript
VSCode launch.json配置详细教程
Jun 18 Javascript
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
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
简单的过滤字符串中的HTML标记
2006/12/25 PHP
PHP 变量定义和变量替换的方法
2009/07/30 PHP
用PHP将网址字符串转换成超链接(网址或email)
2010/05/25 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
JavaScript 对象、函数和继承
2009/07/07 Javascript
Javascript 继承机制实例
2009/08/12 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
VBS通过WMI监视注册表变动的代码
2011/10/27 Javascript
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
动态加载JS文件的三种方法
2013/11/08 Javascript
javascript操作referer详细解析
2014/03/10 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
JavaScript实现的select点菜功能示例
2017/01/16 Javascript
JavaScript 栈的详解及实例代码
2017/01/22 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
AngularJS实现页面跳转后自动弹出对话框实例代码
2017/08/02 Javascript
使用FileReader API创建Vue文件阅读器组件
2018/04/03 Javascript
create-react-app安装出错问题解决方法
2018/09/04 Javascript
对vue中v-on绑定自定事件的实例讲解
2018/09/06 Javascript
js中async函数结合promise的小案例浅析
2019/04/14 Javascript
JS实现扫码枪扫描二维码功能
2020/01/03 Javascript
浅谈vue-props的default写不写有什么区别
2020/08/09 Javascript
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
python中OrderedDict的使用方法详解
2017/05/05 Python
Centos下实现安装Python3.6和Python2共存
2018/08/15 Python
Python 实现opencv所使用的图片格式与 base64 转换
2020/01/09 Python
在tensorflow中设置保存checkpoint的最大数量实例
2020/01/21 Python
详解HTML5中垂直上下居中的解决方案
2017/12/20 HTML / CSS
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
俄罗斯一家时尚女装商店:Charuel
2019/12/04 全球购物
技校毕业生自荐书
2014/05/23 职场文书
数学教育专业求职信
2014/07/22 职场文书
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
师德先进个人材料
2014/12/20 职场文书
2015年幼儿园教育教学工作总结
2015/05/25 职场文书
读《茶花女》有感:山茶花的盛开与凋零
2020/01/17 职场文书