我想知道如何在react native中单击按钮时显示日期选择器。我尝试过各种解决方案仍然没有成功,任何帮助都会有所帮助。 谢谢。
下面是我尝试过的
import React, { Component } from 'react';
import {
Platform,
StyleSheet,
View,DatePicker
} from 'react-native';
这是我的渲染方法
render(){
return(
<TouchableOpacity
onPress={() => this.datePicker.onPressDate()}>
<Text>
Hello Date
</Text>
</TouchableOpacity>
<DatePicker
style={{width: 200}}
ref={(picker) => { this.datePicker = picker; }}
date={this.state.date}
mode="date"
placeholder="Select date"
format="YYYY-MM-DD"
minDate="2016-05-01"
maxDate="2020-12-12"
confirmBtnText="OK"
cancelBtnText="Cancel"
onDateChange={(date) => {this.setState({date: date})}}
/>
);
}
每当我跑步时,我都会遇到以下错误 enter image description here
答案 0 :(得分:1)
您只需标记是否渲染选择器组件,然后将其打开就可以。像这样
render() {
return (
<View>
<TouchableOpacity
onPress={() => this.setState({ picker: !this.state.picker })}>
<Text>Hello Date</Text>
</TouchableOpacity>
{this.renderPicker()}
</View>
);
}
renderPicker() {
if (this.state.picker) {
return (
<DatePicker
style={{ width: 200 }}
ref={picker => {
this.datePicker = picker;
}}
date={this.state.date}
mode="date"
placeholder="Select date"
format="YYYY-MM-DD"
minDate="2016-05-01"
maxDate="2020-12-12"
confirmBtnText="OK"
cancelBtnText="Cancel"
onDateChange={date => {
this.setState({ date: date });
}}
/>
);
}
}
答案 1 :(得分:1)
我正在使用ng add @ng-bootstrap/ng-bootstrap
和以下逻辑:
react-native-datepicker
并从您的元素开始:
<DatePicker
showIcon={false}
hideText={true}
ref={(ref)=>this.datePickerRef=ref}
...
/>
答案 2 :(得分:0)
看看这个程序包react-native-modal-datetime-picker,它适用于跨平台,并且具有完美的设计和高度可定制性。
https://github.com/mmazzarolo/react-native-modal-datetime-picker
答案 3 :(得分:-1)
我建议对日期选择器使用 react-native-datepicker 库。它将为您提供更多的自定义选项,并且与Android和iOS两种平台兼容。
下面是我在一个应用程序中使用的示例代码:-
<View style={{ backgroundColor: 'transparent', margin: 5 }}>
<DatePicker date={this.state.date} showIcon={false} placeholder="Birthday" mode="date" format="DD-MM-YYYY"
customStyles={{
dateInput: {
borderWidth: 0,
height: 50,
width: 170,
right: 30,
},
dateText: {
marginTop: 5,
color: 'white',
fontSize: 18,
},
placeholderText: {
marginTop: 5,
right: 10,
color: 'white',
fontSize: 18,
}
}
}
onDateChange={(date) => { this.setState({ date: date }) }} placeholderTextColor="white" underlineColorAndroid={'rgba(0,0,0,0)'} style={{ height: 50, width: 170, paddingLeft: 15, borderRadius: 4, backgroundColor: 'rgba(0,0,0,0.4)' }}></DatePicker>
</View>
您可以找到库HERE