如何解决尝试在时间模式下打开 React Native datetimepicker 时,应用程序崩溃没有错误
我正在尝试实现 https://github.com/react-native-datetimepicker/datetimepicker,但不幸的是,当我尝试在时间模式下打开 DTPicker 时,应用程序崩溃,我什至没有在 logcat 中收到错误消息。
有用于日期模式的镜像 DateTimePicker,它可以按照我的意愿完美运行。
这是我的组件代码:
constructor(props) {
super(props)
this.state = {
text: '',date: '',time: '',selectedItem: 'mama',showDatePicker: false,showTimePicker: false,timestamp: new Date()
};
}
<View>
<MyTextInput
innerRef={(component) => this.dateInput = component}
btn={1}
placeholder={'data'}
isDateTime={true}
onChangeText={(value) => this.setState({date: value})}
onFocus={this.inputDate}
value={this.state.date} />
{this.state.showDatePicker && (
<DTPicker
onChange={this.dateChange}
value={this.state.timestamp}
mode={'date'} />
)}
<MyTextInput
innerRef={(component) => this.timeInput = component}
btn={1}
placeholder={'czas'}
isDateTime={true}
onChangeText={(value) => this.setState({time: value})}
onFocus={this.inputTime}
value={this.state.time} />
{this.state.showTimePicker && (
<DTPicker
onChange={this.timeChange}
value={this.state.timestamp}
mode={'time'} />
)}
</View>
dateChange = (event,selectedDate) => {
let newDate = new Date(selectedDate);
let month =
newDate.getMonth() < 9
? '0' + (newDate.getMonth() + 1)
: newDate.getMonth() + 1;
let date =
newDate.getDate() < 10 ? '0' + newDate.getDate() : newDate.getDate();
let dateText = newDate.getFullYear() + '-' + month + '-' + date;
this.setState({
date: dateText,timestamp: selectedDate,showDatePicker: false
})
}
timeChange = (event,selectedDate) => {
let newDate = new Date(selectedDate);
let minutes =
newDate.getMinutes() < 10
? '0' + newDate.getMinutes()
: newDate.getMinutes();
let hours =
newDate.getHours() < 10 ? '0' + newDate.getHours() : newDate.getHours();
let timeText = hours + ':' + minutes;
this.setState({
time: timeText,});
};
inputDate = () => {
this.setState({showDatePicker: true})
this.dateInput.blur()
}
inputTime = () => {
this.setState({showTimePicker: true})
this.timeInput.blur()
}
export function DTPicker (props) {
return (
<View style={styles.container} >
<DateTimePicker
onChange={props.onChange}
value={props.value}
mode={props.mode}
display={'default'}
is24Hour={'true'} />
</View>
)
}
export function MyTextInput(props) {
const btn = props.btn;
return (
<View style={btn ? styles.container : styles.container2}>
<TextInput
style={btn ? styles.input : styles.input2}
ref={props.innerRef}
onChangeText={(value) => props.onChangeText(value)}
value={props.value}
placeholder={props.placeholder}
onFocus={props.onFocus}
onEndEditing={props.onEndEditing}
showSoftInputOnFocus={props.isDateTime ? false : true} />
</View>
);
}
知道出了什么问题,我现在一无所知。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。