详解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 相关文章推荐
多浏览器兼容性比较好的复制到剪贴板的js代码
Oct 09 Javascript
JQuery的read函数与js的onload不同方式实现
Mar 18 Javascript
setinterval()与clearInterval()JS函数的调用方法
Jan 21 Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
Mar 04 Javascript
浅谈JS原型对象和原型链
Mar 02 Javascript
JS中多步骤多分步的StepJump组件实例详解
Apr 01 Javascript
JS获取随机数和时间转换的简单实例
Jul 10 Javascript
深入理解ES6 Promise 扩展always方法
Sep 26 Javascript
ES6下子组件调用父组件的方法(推荐)
Feb 23 Javascript
详解jQuery获取特殊属性的值以及设置内容
Nov 14 jQuery
JavaScript函数式编程(Functional Programming)声明式与命令式实例分析
May 21 Javascript
Vue实现点击按钮复制文本内容的例子
Nov 09 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
php 遍历数据表数据并列表横向排列的代码
2009/09/05 PHP
浅谈php调用python文件
2019/03/29 PHP
一个收集图片的bookmarlet(js 刷新页面中的图片)
2010/05/27 Javascript
用js实现in_array的方法
2013/11/05 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
javascript实现 百度翻译 可折叠的分享按钮列表
2015/03/12 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
基于JavaScript实现表单密码的隐藏和显示出来
2016/03/02 Javascript
JavaScript中的Object对象学习教程
2016/05/20 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
AngularJS指令与控制器之间的交互功能示例
2016/12/14 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
JavaScript数据结构之数组的表示方法示例
2017/04/12 Javascript
JavaScript获取当前url路径过程解析
2019/12/27 Javascript
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
浅谈Python中copy()方法的使用
2015/05/21 Python
Python中的zipfile模块使用详解
2015/06/25 Python
python十进制和二进制的转换方法(含浮点数)
2018/07/07 Python
python 实现兔子生兔子示例
2019/11/21 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
师范大学应届生求职信
2013/11/21 职场文书
防灾减灾宣传标语
2014/10/07 职场文书
股权转让协议范本
2014/12/07 职场文书
大学生英文求职信范文
2015/03/19 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
2016关于军训的心得体会
2016/01/11 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
2017大学生寒假社会实践心得体会
2016/01/14 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书
golang定时器
2022/04/14 Golang