Ошибка типа: props.onDateTimeUpdate не является функцией

#reactjs #material-ui

#reactjs #материал-пользовательский интерфейс

Вопрос:

Я использую код из react-datetime-range, и у меня возникает ошибка при изменении даты и времени.

 const [to_date, setToDate] = useState(new Date())
    
    const handleFromDateUpdate = (date:any) => {
        setFromDate(date.date)
    }
    const handleToDateUpdate = (date:any) => {
        setToDate(date.date)
    }
    ...
    <DateTimePickerInput 
           from_date={from_date} 
           to_date={to_date}
           onFromDateTimeUpdate={this.handleFromDateUpdate} 
           onToDateTimeUpdate={this.handleToDateUpdate}
           theme="light" />

 

я пытался найти решения, но после добавления this не помогло. Я понятия не имею, что изменить.

Комментарии:

1. в чем вы видите проблему?

2. добавление this не помогло бы с вашей проблемой, если вы не пишете его как базовый компонент класса. Было бы лучше, если бы вы могли предоставить полный фрагмент кода, который вы используете прямо сейчас.

3. @RinkeshGolwala на локальном хосте. Эта ошибка появляется, когда я нажимаю, чтобы изменить дату и время

4. @user2232355 Вот и все.. Прокрутите вниз до средства выбора даты, оно расположено прямо над картой. Ошибка возникает, когда я нажимаю, чтобы изменить дату и время

Ответ №1:

Вы используете DateTimePickerInput , для которого требуется onDateTimeUpdate prop. Кажется, вы передаете реквизиты, которые лучше соответствуют DateTimeRangePicker сборщику.

Комментарии:

1. О, да, я вернулся к DateTImeRangePicker , и это сработало! Какие изменения мне нужно сделать, чтобы это работало на DateTimePickerInput ? Потому что я предпочитаю последнее больше

2. Из документации « <DateTimePicker date={curr_date} onDateTimeUpdate={handleDateUpdate} /> « И обратите внимание, что это DateTimePicker не DateTimePickerInput

3. @John не уверен, правильно ли я понимаю, что вы пытаетесь сделать …… но вы пробовали import {DateTimeRangePicker as DateTimePickerInput} from "react-datetime-range-super-picker" ;

4. Это предполагает, что вы хотите назвать его as DateTimePickerInput вместо использования исходного соглашения об именовании.

5. Хорошо, я работал, когда менял на DateTimeRangePickerInput