Невозможно прочитать свойство momentLocalizer из undefined - React Big Calendar

В моем проекте я пытаюсь инициализировать react-big-calendar, но он говорит, что его не существует.

Uncaught TypeError: Cannot read property 'momentLocalizer' of undefined

мои версии пакета: "react-dom": "16.2.0", "react-big-calendar": "^ 0.20.1", "moment": "^ 2.22.2",

Есть ли у кого-нибудь решения этих проблем?

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

import * as React from 'react';
import BigCalendar from 'react-big-calendar';
import * as moment from 'moment';


class CalendarContainer extends React.Component {
    constructor(props: any) {
        super(props);
    }

    render() {
        const localizer = BigCalendar.momentLocalizer(moment);
        return (
            <>
                <BigCalendar localizer={localizer} events={events} />
            </>
        );
    }
}

export default CalendarContainer;

person Łukasz Mazur    schedule 08.10.2018    source источник
comment
Не могли бы вы опубликовать релевантный code, который вызвал ошибку?   -  person dance2die    schedule 08.10.2018
comment
Я отредактировал свой пост   -  person Łukasz Mazur    schedule 08.10.2018


Ответы (3)


У меня такая же проблема:

import moment from 'moment';
import { Calendar, momentLocalizer } from 'react-big-calendar';
import 'react-big-calendar/lib/css/react-big-calendar.css';
const localizer = momentLocalizer(moment);

class CalendarContainer extends React.Component {
    constructor(props: any) {
        super(props);
    }

    render() {
        return (
            <>
                <Calendar localizer={localizer} events={events} />
            </>
        );
    }
}

export default CalendarContainer;
person Umbro    schedule 29.08.2019

Вы можете попробовать вытащить локализатор из рендера.

import * as React from 'react';
import BigCalendar from 'react-big-calendar';
import * as moment from 'moment';

const localizer = BigCalendar.momentLocalizer(moment);

class CalendarContainer extends React.Component {
    constructor(props: any) {
        super(props);
    }

    render() {
        return (
            <>
                <BigCalendar localizer={localizer} events={events} />
            </>
        );
    }
}

export default CalendarContainer;
person Jesse Loftus    schedule 30.10.2018

Вы можете попробовать код ниже ...

BigCalendar.setLocalizer(BigCalendar.momentLocalizer(moment));
person Community    schedule 29.08.2019