jQuery fullCalendar 在标题上显示未定义

IT技术 javascript jquery reactjs fullcalendar jsx
2021-04-27 12:18:18

我在 ReactJs 组件上使用 jQuery fullcalendar。

我有一个 <div id="calendar"></div>关于渲染方法

在 componentDidUpdate 上,我使用以下代码更新了日历:

$('#calendar').fullCalendar({
header: {
    left: 'prev,next today',
    center: 'title',
    right: 'month,agendaWeek,agendaDay'
},

events: _this.state.events,
defaultView:'month',
displayEventTime: false,
editable: false,
droppable: false,
durationEditable: false
});

它在标题上显示“未定义”字符。我哪里做错了?以及如何调试未定义字符串的来源?

jquery 全日历

目前,我制作了一个黑客解决方案,通过添加以下内容从标题中删除所有未定义的字符串:

viewRender: function(view, element) {
//note: this is a hack, i don't know why the view title keep showing "undefined" text in it.
//probably bugs in jquery fullcalendar
$('.fc-center')[0].children[0].innerText = view.title.replace(new RegExp("undefined", 'g'), ""); ;

},

有没有更好的解决方案?

我正在使用 jquery FullCalendar v2.9.1

具有以下有关事件的示例数据:

[{"start":"2017-03-24T00:00:00.000Z","end":"2017-03-26T00:00:00.000Z","title":"Open house","description":"Bali 1 open house"}]

注意:我最终放弃了 jquery 完整日历,转而使用 react-big-calendar。

4个回答

升级 fullCalendar 后我遇到了同样的问题,花了我一点时间才弄清楚,因为近一年来一切正常,我过去升级 fullCalendar 没有任何问题,出于某种原因,我不得不将其包含moment.js在我的页面中正在使用 fullCalendar,请参阅我运行一个 MVC 站点,并且以前_layout.cshtml引用母版页 ( ) moment.js,现在不确定为什么它不再起作用,就像测试一样,我在我使用的实际页面中添加了对 moment 的引用fullCalendar 和 undefindundefined 消失了,我遇到的另一个事件问题也消失了。

在我的情况下,修复是:

@Scripts.Render("~/bundles/dates") 

在您的情况下,它可能只是:

<script src='//cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js'></script>

将 fullCalendar.js 从 v2.6.1 升级到 v3.4.0 后,我遇到了同样的问题

在我的情况下,通过moment.js之后包含fullcalendar.jsscheduler.min.js解决了问题

我对 Angular2 组件中的 fullcalendar v3.4.0 和 fullcalendar-scheduler v1.6.2 有同样的问题。我降级到最后一个运行版本 fullcalendar v3.1.0。这个问题好像是fullcalendar v3.2.0上面介绍的

我遇到了同样的问题,但对我来说这与 moment.js 无关。

我使用 node_modules 和加载顺序是这样的:

require('fullcalendar');
require('fullcalendar-scheduler');

但是,经过更多调查,我发现 fullcalendar-scheduler 已经在加载 fullcalendar module,所以我只需要保留调度程序,一切正常:

require('fullcalendar-scheduler');