详解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 相关文章推荐
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
Apr 01 Javascript
JS getStyle获取最终样式函数代码
Apr 01 Javascript
JavaScript实现继承的4种方法总结
Oct 16 Javascript
移动设备web开发首选框架:zeptojs介绍
Jan 29 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
Apr 12 Javascript
javascript设置和获取cookie的方法实例详解
Jan 05 Javascript
表单中单选框添加选项和移除选项
Jul 04 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
Feb 16 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
Aug 06 Javascript
vue渲染时闪烁{{}}的问题及解决方法
Mar 28 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
Aug 12 Javascript
vue-cli4使用全局less文件中的变量配置操作
Oct 21 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
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
php 过滤危险html代码
2009/06/29 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
2013/05/15 PHP
php页面缓存方法小结
2015/01/10 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
深入理解JavaScript系列(43):设计模式之状态模式详解
2015/03/04 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
JS实现1000以内被3或5整除的数字之和
2016/02/18 Javascript
Bootstrap3 模态框使用实例
2017/02/22 Javascript
Vue-cli3项目配置Vue.config.js实战记录
2018/07/29 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
2018/10/31 Javascript
JavaScript实现的拼图算法分析
2019/02/13 Javascript
Vue 组件修改根实例的数据的方法
2019/04/02 Javascript
ES6知识点整理之模块化的应用详解
2019/04/15 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
Python里disconnect UDP套接字的方法
2015/04/23 Python
Python处理Excel文件实例代码
2017/06/20 Python
python 字典 按key值大小 倒序取值的实例
2018/07/06 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
python利用openpyxl拆分多个工作表的工作簿的方法
2019/09/27 Python
Python使用py2neo操作图数据库neo4j的方法详解
2020/01/13 Python
利用setuptools打包python程序的方法步骤
2020/01/18 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
美丽的现代设计家具:2Modern
2018/07/26 全球购物
英国休闲奢华的缩影:Crew Clothing
2019/05/05 全球购物
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
大学毕业感言
2014/01/10 职场文书
巧克力蛋糕店创业计划书
2014/01/14 职场文书
大一新生学期自我评价
2014/04/09 职场文书
竞选体育委员演讲稿
2014/04/26 职场文书
环保倡议书50字
2014/05/15 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
入党转正申请报告
2015/05/15 职场文书
PHP策略模式写法
2021/04/01 PHP
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
2022/06/21 Java/Android