You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FullCalendar dayGridMonth视图下单日事件未按时间顺序显示的问题求助

FullCalendar dayGridMonth视图下单日事件未按时间顺序显示的问题求助

大家好,我最近在React项目里用FullCalendar 6.1.15版本时碰到了个棘手的问题:在dayGridMonth月视图下,同一天的事件并没有按照开始时间的先后顺序展示,但切换到其他视图(比如timeGrid类的视图)时,事件排序完全正常。

我已经试了好几种办法试图解决,但都没见效:

  • 直接在FullCalendar的配置里设置了eventOrder: 'start'
  • 提前在代码里手动对事件数组按start字段做了排序
  • 还给每个事件专门加了sortOrder字段(对应事件的开始时间),尝试用这个字段来指定排序依据

更奇怪的是,我在沙盒环境里用旧版本的FullCalendar搭配React测试,或者直接在纯HTML文件里操作DOM使用FullCalendar,这两种情况下dayGridMonth视图的事件都能正常按时间排序,唯独当前项目的6.1.15版本出了问题。

我附了两张截图可以直观看到差异:React实现的有问题的版本,和HTML实现的正常版本。

以下是我的相关代码:

模拟的事件数据

const fakeEvents = [
  {
    id: 1,
    title: "Project Discussion",
    start: "2025-05-08T05:00:00",
    end: "2025-05-08T06:00:00",
    allDay: false,
    sortOrder: "05:00",
    backgroundColor: "black",
    borderColor: "black",
    textColor: "white",
  },
  {
    id: 2,
    title: "Team Sync",
    start: "2025-05-08T06:00:00",
    end: "2025-05-08T07:00:00",
    allDay: false,
    sortOrder: "06:00",
    backgroundColor: "black",
    borderColor: "black",
    textColor: "white",
  },
  {
    id: 3,
    title: "Afternoon Review",
    start: "2025-05-08T07:00:00",
    end: "2025-05-08T08:00:00",
    allDay: false,
    sortOrder: "07:00",
    backgroundColor: "black",
    borderColor: "black",
    textColor: "white",
  },
  {
    id: 4,
    title: "Lunch",
    start: "2025-05-08T08:00:00",
    end: "2025-05-08T09:00:00",
    allDay: false,
    sortOrder: "08:00",
    backgroundColor: "black",
    borderColor: "black",
    textColor: "white",
  },
  {
    id: 5,
    title: "Morning Meeting",
    start: "2025-05-08T09:00:00",
    end: "2025-05-08T10:00:00",
    allDay: false,
    sortOrder: "09:00",
    backgroundColor: "black",
    borderColor: "black",
    textColor: "white",
  }
];

FullCalendar组件配置

<FullCalendar
  key={`${slotRange.min}-${slotRange.max}`}
  ref={calendarRef}
  plugins={[dayGridPlugin, timeGridPlugin, interactionPlugin, rrulePlugin]}
  initialView={currentView}
  height="auto"
  allDaySlot={false}
  eventOrder='start'
  headerToolbar={false} // Disable the built-in header
  datesSet={ (arg)=> {
    setCurrentView(arg.view.type);
    setCalendarTitle(arg.view.title);
  }}
  slotMinTime={slotRange.min}
  slotMaxTime={slotRange.max}
  events={fakeEvents}
/>

有没有朋友遇到过类似的情况?或者有什么我没注意到的配置细节吗?麻烦大家给点指导,谢谢了!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 11:25:28