加载默认日历后,活动不会在月视图中显示

时间:2019-03-08 05:13:52

标签: react-big-calendar

我将React Big Calendar用于日历。

<BigCalendar
    selectable
    events={this.state.events}
    step={60}
    defaultDate={new Date()}
    localizer={localizer}
    dayPropGetter={this.dayStyleGetter}
    onSelectSlot = {this.handleSelect}
    eventPropGetter={(this.eventStyleGetter)}/>

这是我的组件。加载默认日历后,事件不会在月视图中显示。我知道原因之一。我处于活动状态的事件为空,因此日历在月视图中未显示任何事件。

然后,如果我向该州提供了任何静态事件,是否可以在月视图中获取这些静态事件?

1 个答案:

答案 0 :(得分:0)

如果事件的startend的值不是JavaScript Date对象,则我以前曾经历过。如果仅传递字符串,则初始视图将无法正常工作。然后,浏览视图将通过localizer传递值(在视图更改期间)并进行转换(如果可能)。因此,您不会在加载时看到它们,然后在导航到另一个视图后会看到它们。令人困惑和沮丧。

我什至用自己的代码编写了辅助方法来转换这些值。

import eventData from './somefile.json';

const myData = eventData.map(event => {
  event.start = new Date(event.start);
  event.end = new Date(event.end);
  return event;
});

当然,仅当我的startend的值是Date对象构造函数可以正确解析的字符串时,该方法才有效。重要的部分(文档中的)是这些键需要正确的Date对象值。