Fullcalendar 如何将所有google日历事件设置为使用背景渲染显示?

Fullcalendar 如何将所有google日历事件设置为使用背景渲染显示?,fullcalendar,fullcalendar-4,Fullcalendar,Fullcalendar 4,我正在使用FullCalendar 4,我正在从谷歌日历导入事件。我希望这些在日历中显示为全天的背景事件,以显示我很忙,而不是显示事件是什么以及持续多长时间。导入事件并显示它们通常可以正常工作 我尝试使用更改渲染属性,如下所示 eventRender: function(info) { info.event.setProp( rendering, 'background' ); } 这似乎破坏了事件并没有显示任何内容,当我尝试在更新后访问事件以记录开始日期时,我得到以下信息 Failu

我正在使用FullCalendar 4,我正在从谷歌日历导入事件。我希望这些在日历中显示为全天的背景事件,以显示我很忙,而不是显示事件是什么以及持续多长时间。导入事件并显示它们通常可以正常工作

我尝试使用更改渲染属性,如下所示

eventRender: function(info) {
    info.event.setProp( rendering, 'background' );
}
这似乎破坏了事件并没有显示任何内容,当我尝试在更新后访问事件以记录开始日期时,我得到以下信息

Failure parsing JSON {message: "Failure parsing JSON", xhr: XMLHttpRequest}
在setProp调用之前执行此操作将正确输出日期

我在文档中注意到,当使用“函数”时,还可以返回一个全新的元素,该元素将用于渲染。对于全天背景事件,必须确保返回
'

但是,我在新文档或示例中找不到任何关于如何执行此操作的示例

我还尝试在EventsRender和DatesRender中为每个循环创建一个for循环,以收回所有事件,并为每个现有事件创建一个新的后台事件,然后销毁现有事件。但这似乎不太管用。在EventsRender中完成后,我会得到一个永久循环,作为函数
info.event.remove()似乎从来都不起作用。在DatesRender中,我获得了一个新的背景事件,但仅在一个月的第二次渲染时,它不会删除现有的背景事件。有关我的DatesRender代码,请参见下文

datesRender: function(info) {
            //now recreate events so they are all background events
            var events = calendar.getEvents();
            console.log("Dates Render!");
            $.each(events, function( index, event ) {
                //get event date
                var date = event.start;
                console.log(date);
                //remove original event
                event.remove();
                //add new as a background event
                calendar.addEvent({
                    title: 'dynamic event',
                    start: date,
                    allDay: true,
                    rendering: 'background',
                    backgroundColor: '#B2B2B2'
                });
            });

        },
很明显,我在做些傻事。谁能给我指出正确的方向吗

已更新


正如建议的那样,你可以使用这个方法来做这件事非常简单

eventDataTransform: function(eventData) {
            eventData.rendering = 'background';
        },
eventDataTransform: function(eventData) {
            eventData.rendering = 'background';
        },

正如建议的那样,你可以使用这个方法来做这件事非常简单

eventDataTransform: function(eventData) {
            eventData.rendering = 'background';
        },
eventDataTransform: function(eventData) {
            eventData.rendering = 'background';
        },

这应该对某人有所帮助。为了使用google API结果的标题呈现背景,我们开始吧。我使用react,因此代码段的语法可能会有所不同

  const calendarAPI = calendarRef.current.getApi();
  calendarAPI.addEventSource({
    googleCalendarId: 'en.usa#holiday@group.v.calendar.google.com',
    color: '#ff9f89',
    editable: false,
    display: 'background',
  });

在文档中,它表示setProp会导致事件重新引发。我可以想象,如果在eventRender函数中使用它,可能会导致问题。尝试在中设置它,并检查是否有任何更改使用
eventDataTransform:function(eventData){eventData.rendering='background';}
伙计们,请注意当前的方法是
eventData.display='background'
而不是
eventData.rendering
。伙计们,请注意当前的方法是
eventData.display='background'而不是
eventData.rendering