详解React Native开源时间日期选择器组件(react-native-datetime)


Posted in Javascript onSeptember 13, 2017

项目介绍

该组件进行封装一个时间日期选择器,同时适配Android、iOS双平台,该组件基于@remobile/react-native-datetime-picker进行开发而来

配置安装

npm install react-native-datetime --save

1.1.iOS环境配置

上面步骤完成之后,直接前台写js代码即可

1.2.Android环境配置

在android/setting.gradle文件中如下配置

...
include ':react-native-datetime'
project(':react-native-datetime').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-datetime/android')

在android/app/build.gradle文件中如下配置

...
dependencies {
  ...
  compile project(':react-native-datetime')
}

在MainActivity.java中进行注册模块

①.React Native>=0.18开始

import com.keyee.datetime.*; // <--- import
 
public class MainActivity extends ReactActivity {
 ......
 
 /**
  * A list of packages used by the app. If the app uses additional views
  * or modules besides the default ones, add more packages here.
  */
  @Override
  protected List<ReactPackage> getPackages() {
   return Arrays.<ReactPackage>asList(
    new RCTDateTimePickerPackage(this), // <------ add here
    new MainReactPackage());
  }
}

①.React Native<=0.17版本

import com.keyee.datetime.*; // <--- import
 
public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler {
 ......
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  mReactRootView = new ReactRootView(this);
 
  mReactInstanceManager = ReactInstanceManager.builder()
   .setApplication(getApplication())
   .setBundleAssetName("index.android.bundle")
   .setJSMainModuleName("index.android")
   .addPackage(new MainReactPackage())
   .addPackage(new RCTDateTimePickerPackage(this))       // <------ add here
   .setUseDeveloperSupport(BuildConfig.DEBUG)
   .setInitialLifecycleState(LifecycleState.RESUMED)
   .build();
 
  mReactRootView.startReactApplication(mReactInstanceManager, "ExampleRN", null);
 
  setContentView(mReactRootView);
 }
 
 ......
}

运行截图

ios运行效果

详解React Native开源时间日期选择器组件(react-native-datetime)

android运行效果

详解React Native开源时间日期选择器组件(react-native-datetime)

使用方法

<DateTimePicker ref={(picker)=>{this.picker=picker}}/>
...
this.picker.showDatePicker(...)
this.picker.showTimePicker(...)
this.picker.showDateTimePicker(...)

在ios平台上面使用,需要确保当前DataTimePicker视图在顶部

使用实例

'use strict';
 
var React = require('react-native');
var {
  StyleSheet,
  TouchableOpacity,
  View,
  Text,
} = React;
 
var DateTimePicker = require('react-native-datetime');
var Button = require('@remobile/react-native-simple-button');
 
module.exports = React.createClass({
  getInitialState() {
    return {
      date: new Date(),
    }
  },
  showDatePicker() {
    var date = this.state.date;
    this.picker.showDatePicker(date, (d)=>{
      this.setState({date:d});
    });
  },
  showTimePicker() {
    var date = this.state.date;
    this.picker.showTimePicker(date, (d)=>{
      this.setState({date:d});
    });
  },
  showDateTimePicker() {
    var date = this.state.date;
    this.picker.showDateTimePicker(date, (d)=>{
      this.setState({date:d});
    });
  },
  render() {
    return (
      <View style={styles.container}>
        <Text style={{textAlign: 'center'}}>
          {this.state.date.toString()}
        </Text>
        <View style={{height:40}} />
        <Button onPress={this.showDatePicker}>showDatePicker</Button>
        <View style={{height:40}} />
        <Button onPress={this.showTimePicker}>showTimePicker</Button>
        <View style={{height:40}} />
        <Button onPress={this.showDateTimePicker}>showDateTimePicker</Button>
        <DateTimePicker ref={(picker)=>{this.picker=picker}}/>
      </View>
    );
  },
});
 
var styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    paddingTop:20,
  },
});

方法介绍

  • showDatePicker(date, callback(date))
  • showTimePicker(date, callback(date))
  • showDateTimePicker(date, callback(date))

属性介绍

  • cancelText (default: Cancel)
  • okText (default: Ok)

开源项目地址:https://github.com/cnjon/react-native-datetime

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery获取特定name所有选中的checkbox,支持IE9标准模式
Mar 18 Javascript
JS检测图片大小的实例
Aug 21 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
May 04 Javascript
JSON字符串和对象相互转换实例分析
Jun 16 Javascript
js接收并转化Java中的数组对象的方法
Aug 11 Javascript
用director.js实现前端路由使用实例
Jan 27 Javascript
vue2.0+koa2+mongodb实现注册登录
Apr 10 Javascript
浅析java线程中断的办法
Jul 29 Javascript
详解iframe跨域的几种常用方法(小结)
Apr 29 Javascript
Vue 实现从文件中获取文本信息的方法详解
Oct 16 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
Oct 30 Javascript
python实现迭代法求方程组的根过程解析
Nov 25 Javascript
基于vue的短信验证码倒计时demo
Sep 13 #Javascript
BootStrap数据表格实例代码
Sep 13 #Javascript
使用Fullpage插件快速开发整屏翻页的页面
Sep 13 #Javascript
Angular CLI 安装和使用教程
Sep 13 #Javascript
JS库之Three.js 简易入门教程(详解之一)
Sep 13 #Javascript
详解VueRouter进阶之导航钩子和路由元信息
Sep 13 #Javascript
JS库中的Particles.js在vue上的运用案例分析
Sep 13 #Javascript
You might like
海贼王动画变成“真人”后,凯多神还原,雷利太帅了!
2020/04/09 日漫
php学习之变量的使用
2011/05/29 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
PHP echo()函数讲解
2019/02/15 PHP
很酷的javascript loading效果代码
2008/06/18 Javascript
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
javascrip关于继承的小例子
2013/05/10 Javascript
javascript操作excel生成报表示例
2014/05/08 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
2014/05/22 Javascript
jquery修改网页背景颜色通过css方法实现
2014/06/06 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
2015/05/15 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
Javascript的动态增加类的实现方法
2016/10/20 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
vue下history模式刷新后404错误解决方法
2018/08/18 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
2018/11/02 Javascript
详解JavaScript 为什么要有 Symbol 类型?
2019/04/03 Javascript
Fetch超时设置与终止请求详解
2019/05/18 Javascript
JS原形与原型链深入详解
2020/05/09 Javascript
在Django的模型中执行原始SQL查询的方法
2015/07/21 Python
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
python实现简易动态时钟
2018/11/19 Python
对Python3 goto 语句的使用方法详解
2019/02/16 Python
Python实现多进程的四种方式
2019/02/22 Python
基于Python的图像数据增强Data Augmentation解析
2019/08/13 Python
Python接口测试环境搭建过程详解
2020/06/29 Python
优秀应届生推荐信
2013/11/09 职场文书
《胖乎乎的小手》教学反思
2014/02/26 职场文书
先进典型发言材料
2014/12/30 职场文书
同学聚会通知短信
2015/04/20 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
小学英语听课心得体会
2016/01/14 职场文书
springboot入门 之profile设置方式
2022/04/04 Java/Android