Ich versuche, DatePickerAndroid in React Native verwenden.Wie React verwenden Native DatePickerAndroid
De Funktion ist wie folgt:
showAndroidDatePicker = async() => {
try {
const {action, year, month, day} = await DatePickerAndroid.open({
date: this.state.selectedValue
});
if (action !== DatePickerAndroid.dismissedAction) {
var date = new Date(year, month, day);
this.setState({selectedValue: date.toLocaleDateString()});
}
} catch ({code, message}) {
console.warn('Cannot open date picker', message);
}
};
render
Funktion ist wie folgt:
render() {
let numbers = [];
for(var i=0; i<=this.props.max; i++) numbers.push((i + ''));
return (
<View>
{this.renderModal()}
<ItemDetail selectItem={this.selectItem.bind(this)} resetItem={this.resetItem.bind(this)} title={this.props.title} value={formatDate(this.props.value)} icon={this.props.icon} />
</View>
)
}
Und machen modale Funktion wie folgt:
renderModal() {
if(!this.state.itemPickerVisible) return;
let datePicker = <DatePickerIOS date={this.state.selectedValue} mode="date" timeZoneOffsetInMinutes={this.state.timeZoneOffsetInHours * 60} onDateChange={(date) => { this.setState({selectedValue: date})}} />;
if (Platform.OS === "android"){
datePicker = this.showAndroidDatePicker()
}
return(
<Modal animationType="fade" transparent={true} visible={this.state.itemPickerVisible}>
<View style={{flex: 1, flexDirection: 'column', justifyContent: 'flex-end'}}>
<View style={{flex: 1, backgroundColor: '#000', opacity: 0.4}}>
</View>
<View style={{backgroundColor: '#fff'}}>
<View style={{backgroundColor: '#ddd', flexDirection: 'row', justifyContent: 'space-between', padding: 7}}>
<Text style={{padding: 4}}>{this.props.title}</Text>
<TouchableHighlight onPress={this.selectedItem.bind(this)}>
<Text style={{padding: 4, color: s.colorDark}}>{gettext("Done")}</Text>
</TouchableHighlight>
</View>
<View>
{datePicker}
</View>
</View>
</View>
</Modal>
)
}
Aber wenn die renderModal
Bedürfnisse gerendert bekomme ich einen Fehler:
Danke, aber das ist nicht die Antwort, die ich suchte. Ich weiß, wie plattformspezifische Auswahl angezeigt wird, aber ich habe ein Problem mit Android-Picker. Ihre Antwort ist keine Antwort auf meine Frage. Ich habe gefragt, wie man androidPicker benutzt, aber das sehe ich hier nicht. – Boky
Haben Sie versucht, 'showAndroidDatePicker' von' componentDidMount' aufzurufen? Sie versuchen derzeit, das Ergebnis von imperativem Code innerhalb der deklarativen jsx zu verwenden, was nicht funktioniert. Wie vorgeschlagen, versuchen Sie, alle android-bezogenen Sachen von 'renderModal' zu entfernen und den android-Picker auf dem Komponenten-Mount aufzurufen. Lassen Sie mich wissen, wenn das Sie vorwärts bringt – NiFi
Ich bekomme den gleichen Fehler! Wie hast du es gelöst? – Aayushi