8

Chciałbym ograniczyć użytkowników do wybierania konkretnych dat w oparciu o logikę biznesową w reagowanie natywnych ustawiaczy data ios/Android. Obecnie w dokumencie widzę tylko, że można podać min. Datę i maks. Datę. Czy istnieje sposób, aby ograniczyć tylko powiedzmy (5, 6, 10, 12, 18) miesiąca?Jak ograniczyć wybór daty w React natywny ios/andoird datepicker

Uwaga: terminy te są tylko przykładem byłoby zmienić od przypadku do przypadku scenariusza

+0

Nie jest to możliwe w przypadku domyślnego natywnego datacku iOS/android, a sam musisz utworzyć niestandardowy selektor. –

Odpowiedz

5

Na przykład IOS

<DatePickerIOS 
 
     date={this.state.chosenDate} 
 
     onDateChange={(date) => { 
 
     if(isAllowedDate(date)) { 
 
      this.setState({chosenDate: newDate}) 
 
     } 
 
     else { 
 
      this.setState({error:'you can not select this date ...'}) 
 
     } 
 

 
     }} 
 
    />

+0

Witam @Sam, jeśli ta lub jakakolwiek odpowiedź rozwiązała twoje pytanie, rozważ [akceptuj to] (https://meta.stackexchange.com/q/5234/179419), klikając znacznik wyboru. Wskazuje to szerszej społeczności, że znalazłeś rozwiązanie i dajesz reputację zarówno samemu, jak i użytkownikowi. Nie ma obowiązku tego robić. – chridam

1

użytku react-native-datepicker moduł dla iOS i Androida, ustawić metoda sprawdzania, czy data jest ważna lub nie,

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