#reactjs #momentjs #react-dates
#reactjs #momentjs #реагирующие даты
Вопрос:
Я пытаюсь использовать SingleDatePicker для редактирования / добавления событий в базу данных. Я могу создать новое событие за пределами этого календарного года, но когда я перехожу к редактированию любого события после 2019 года, я получаю «недопустимую дату» в моем SingleDatePicker, которая приводит к сбою моего сайта при нажатии и выдает ошибку «Uncaught TypeError: month
должен быть действительный объект moment» . Я использую momentjs. Стоит отметить, что все даты передаются из моего API в точно таком же формате, и у меня есть эта проблема только с датами с годами после 2019 года. Когда дата после 2019 года, я получаю сообщение об ошибке «Предупреждение: сбойный тип реквизита: недопустимый реквизит date
типа object
, предоставленный SingleDatePicker
, ожидаемый Moment
. » Я использую moment, поэтому я не понимаю эту ошибку.
Я не нашел документации по этой проблеме.
`componentWillReceiveProps() {
if (this.props.date !== null) {
let newDate = moment(this.props.date, "ddd, MMM DD yyyy HH:mm:ss
Z");
this.setState({ date: newDate });
}
....
....
....
....
<SingleDatePicker
date={this.state.date}
isOutsideRange={() => false}
onDateChange={date => this.setState({ date })} /
focused={this.state.focused}
onFocusChange={({ focused }) => this.setState({
focused })}
id="selectedDate" ,
/>`
Комментарии:
1. Можете ли вы создать codesandbox и поделиться своим кодом? Это будет легче отлаживать
Ответ №1:
Я нашел обходной путь, который был решен для меня. Когда дата равна нулю (как в нашем случае), вы можете установить ее на сегодняшнюю дату с таким моментом:
onDateChange={date => this.setState({ date || moment().format('YYYY-MM-DD') })}