web-dev-qa-db-fra.com

Comment limiter la sélection de date dans le sélecteur de date React ios/Android natif de React

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.

10
Sam

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 ...'})
        }

      }}
    />

7

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});
}
1
Ali