Невозможно прочитать свойство 'create' из undefined - ошибка в датах реакции
При добавлении SingleDatePicker из библиотеки реагирующих дат я получил эту ошибку. Перепробовал все, но не смог найти ошибку. Код только для отображения календаря и отображения выбранной даты от пользователя. Пожалуйста помоги! Вот код:
import React from 'react';
import moment from 'moment';
import { SingleDatePicker } from 'react-dates';
import 'react-dates/lib/css/_datepicker.css';
export default class ExpenseForm extends React.Component {
state = {
createdAt: moment(),
calenderFocused: false
};
onDateChange = (createdAt) => {
this.setState(() => ({ createdAt }));
};
onFocusChange = ({ focused }) => {
this.setState(() => ({ calenderFocused: focused }));
};
render() {
return (
<div>
<form>
<SingleDatePicker
date={this.state.createdAt}
onDateChange={this.onDateChange}
focused={this.state.calendcalenderFocused}
onFocusChange={this.onFocusChange}
/>
</form>
</div>
);
}
};
Ошибка, которую я получаю в chrome-dev-tool:
Uncaught TypeError: Cannot read property 'create' of undefined
at Object.createLTR [as create] (ThemedStyleSheet.js?17e6:46)
at WithStyles.maybeCreateStyles (withStyles.js?55c9:121)
at WithStyles.componentWillMount (withStyles.js?55c9:107)
at callComponentWillMount (react-dom.development.js?cada:6337)
at mountClassInstance (react-dom.development.js?cada:6393)
at updateClassComponent (react-dom.development.js?cada:7849)
at beginWork (react-dom.development.js?cada:8233)
at performUnitOfWork (react-dom.development.js?cada:10215)
at workLoop (react-dom.development.js?cada:10279)
at HTMLUnknownElement.callCallback (react-dom.development.js?cada:540)
The above error occurred in the <withStyles(SingleDatePicker)> component:
in withStyles(SingleDatePicker) (created by ExpenseForm)
in form (created by ExpenseForm)
in div (created by ExpenseForm)
in ExpenseForm (created by AddExpensePage)
in div (created by AddExpensePage)
in AddExpensePage (created by Route)
in Route (created by AppRouter)
in Switch (created by AppRouter)
in div (created by AppRouter)
in Router (created by BrowserRouter)
in BrowserRouter (created by AppRouter)
in AppRouter
in Provider
3 ответа
Я получил ту же ошибку в моих тестах и добавлении import 'react-dates/initialize';
починил это.
Импортировать 'даты реакции / инициализировать';
Начиная с v13.0.0 дат реагирования, этот проект опирается на реакцию со стилями. Если вы хотите продолжать использовать таблицы стилей и классы CSS, вам понадобится немного дополнительных настроек, чтобы все заработало. В связи с этим вам необходимо импортировать даты реакции / инициализации, чтобы настроить имена классов в наших компонентах.
Вы не инициируете состояние должным образом. Вы должны использовать конструктор, например так:
import React from 'react';
import moment from 'moment';
import { SingleDatePicker } from 'react-dates';
import 'react-dates/lib/css/_datepicker.css';
export default class ExpenseForm extends React.Component {
constructor(props){
super(props);
this.state = {
createdAt: moment(),
calenderFocused: false
}
}
onDateChange = (createdAt) => {
this.setState(() => ({ createdAt }));
};
onFocusChange = ({ focused }) => {
this.setState(() => ({ calenderFocused: focused }));
};
render() {
return (
<div>
<form>
<SingleDatePicker
date={this.state.createdAt}
onDateChange={this.onDateChange}
focused={this.state.calendcalenderFocused}
onFocusChange={this.onFocusChange}
/>
</form>
</div>
);
}
};