Je souhaite empêcher les utilisateurs de sélectionner des dates particulières en fonction de la logique métier dans les sélecteurs de date natifs ios/Android. Actuellement dans le document, je vois seulement qu'une date minimale et une date maximale peuvent être fournies. Alors, y a-t-il un moyen de limiter uniquement les mois (5, 6, 10, 12, 18)?
Remarque: ces dates ne sont qu'un exemple et changeraient d'un cas à l'autre.
Pour IOS exemple
<DatePickerIOS
date={this.state.chosenDate}
onDateChange={(date) => {
if(isAllowedDate(date)) {
this.setState({chosenDate: newDate})
}
else {
this.setState({error:'you can not select this date ...'})
}
}}
/>
utiliser react-native-datepicker
module pour iOS et Android, définir une méthode pour vérifier si la date est valide ou non
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});
}