react-native DatePicker日期选择组件的实现代码

(编辑:jimmy 日期: 2025/1/21 浏览:2)

本教程的实现效果如下:

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 "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 就能看到效果了

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

一句话新闻

一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?