Ich möchte Benutzer daran hindern, bestimmte Daten basierend auf der Geschäftslogik in reaktiver ios/Android-Datumsauswahl auszuwählen. Momentan sehe ich im Dokument nur, dass ein Mindestdatum und ein Maximaldatum angegeben werden können. Gibt es einen Weg, um nur einen Teil (5, 6, 10, 12, 18) eines Monats einzugrenzen?
Hinweis: Diese Daten sind nur ein Beispiel, das sich von Fall zu Fall ändern würde
Für IOS Beispiel
<DatePickerIOS
date={this.state.chosenDate}
onDateChange={(date) => {
if(isAllowedDate(date)) {
this.setState({chosenDate: newDate})
}
else {
this.setState({error:'you can not select this date ...'})
}
}}
/>
verwenden Sie react-native-datepicker
module für iOS und Android. Legen Sie fest, ob das Datum gültig ist oder nicht
render(){
return(
...
<DatePicker
mode="date"
placeholder="select date"
format="YYYY-MM-DD"
onDateChange={this.saveDateIfValid}
/>
...
)
}
saveDateIfValid = (date) =>
{
if(date){
let dateArray = data.split("-");
let validDays = [5,6,10,12,18];
let selectedDay = parseInt(dataArray[2]);
if(validDays.indexOf(selectedDay) > -1){
//date is valid
this.setState({date : date});
return; //end the method
}
}
//not valid
this.setState({date : null});
}