0

问题

尝试实现react-calendar和后退和下一个按钮(更改日期)抛出此错误:

未捕获的类型错误:无法读取未定义的属性“0”

它以前工作过,我没有更改我的代码中的任何内容,所以我很困惑。

问题

为什么我无法在 react-big-calendar 上使用下一个和后退按钮(更改日期)?

代码:

import React, {Component} from 'react';
import BigCalendar from 'react-big-calendar';
import moment from 'moment';

// Setup the localizer by providing the moment (or globalize) Object
// to the correct localizer.
BigCalendar.momentLocalizer(moment); // or globalizeLocalizer

export default class CalendarComponent extends Component {

    constructor(props){
        super(props);

        this.state = {
            events: []
        }

    }

    render(){
        return (
            <div style={{flex: 1}}>
                <BigCalendar
                    events={this.state.events}
                    startAccessor='startDate'
                    endAccessor='endDate'
                />
            </div>
        );
    }
}

库错误行:

在图书馆的这一行似乎失败了:

MonthView.prototype.renderHeaders = function renderHeaders(row, format, culture) {
    //failes here.
    var first = row[0];
    var last = row[row.length - 1];
    var HeaderComponent = this.props.components.header || _Header2.default;

    return _dates2.default.range(first, last, 'day').map(function (day, idx) {
      return _react2.default.createElement(
        'div',
        { key: 'header_' + idx, className: 'rbc-header' },
        _react2.default.createElement(HeaderComponent, {
          date: day,
          label: _localizer2.default.format(day, format, culture),
          localizer: _localizer2.default,
          format: format,
          culture: culture
        })
      );
    });
  };
4

1 回答 1

1

应用 defaultDate 属性解决了这个问题。

        <div style={{flex: 1}}>
            <BigCalendar
                events={this.state.events}
                startAccessor='startDate'
                endAccessor='endDate'
                defaultDate={moment().toDate()}
            />
        </div>

https://github.com/intljusticemission/react-big-calendar/issues/834

于 2018-05-07T14:26:17.287 回答