首页 > 解决方案 > 如果事件有规则,则在 eventClick 中返回具有 null 结束值的事件

问题描述

https://codepen.io/SashaPl/pen/MWboodq?editors=0010

如果我有带有 rrule 的事件,那么在 eventClick 中它不会有结束值,但会有正确的开始值。

对于此类活动,结束日期为 Thu Feb 04 2021 00:00:00

{
        title: "simple event",
        start: "2021-02-02",
        end: "2021-02-04"
},

但是像这样它将为空

{
        title: "event with rrule",
        start: "2021-02-03T12:30:00",
        end: "2021-02-03T13:30:00",
        rrule: "FREQ=Weekly;WKST=SU;UNTIL=20210804T000000Z;INTERVAL=1;BYDAY=WE"
}

标签: javascriptfullcalendarfullcalendar-5

解决方案


当从后端映射事件时,我为我将 eventLengthTimeStamp 添加到 eventLengthTimeStamp 修复了它

const eventLengthTimeStamp = end.getTime() - start.getTime();

什么时候

 eventClick: (event) => {
  const popover = this._popoversMap.get(event.el);
  if (popover) {
    //this property is used because event with rrule have no end. end is null
    const diffTimeStamp = event.event.extendedProps.eventLengthTimeStamp;
    const end = new Date(event.event.start.getTime() + diffTimeStamp);
    const calendarEvent: EventApi = JSON.parse(JSON.stringify(event.event));
    calendarEvent.extendedProps.end = end;
    popover.instance.popover.open({ event: calendarEvent });
  }
},

这对我来说很好


推荐阅读