视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
react-native DatePicker日期选择组件的实现代码
2020-11-27 22:30:32 责编:小采
文档


本教程的实现效果如下:

为了实现其淡入/淡出的覆盖效果, 还有取消按钮, 在此用了一个三方的组件, 大家可以先安装一下:

三方组件的地址: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 就能看到效果了

下载本文
显示全文
专题