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

React FullCalendar日期导航(上/下页按钮)监听实现方法

监听FullCalendar导航按钮(Next/Previous)事件的解决方案

FullCalendar 提供了 datesSet 回调事件,每当视图的日期范围发生变化(包括点击Next/Previous按钮、切换视图、手动跳转日期等操作)时都会触发,完全满足你获取当前导航日期并执行计算的需求。

修改后的组件配置

直接在你的 FullCalendar 组件中添加 datesSet 回调,并定义对应的处理函数:

import FullCalendar from '@fullcalendar/react';
// 导入你已有的插件...

const YourComponent = () => {
  // 你的现有状态、函数(如handleEventDrop等)...

  // 处理日期范围变化的回调
  const handleDatesSet = (info) => {
    // 从info对象中提取当前视图的关键日期信息
    const currentStart = info.start; // 当前视图的起始日期(如月份视图的当月第一天)
    const currentEnd = info.end; // 当前视图的结束日期(月份视图的下一月第一天,为排他日期)
    const currentViewType = info.view.type; // 当前视图类型,比如'dayGridMonth'

    // 在这里执行你的计算逻辑
    console.log('当前导航到的起始日期:', currentStart);
    console.log('当前视图类型:', currentViewType);

    // 示例:获取当前月份的年份和月份(注意月份是0-11,需+1转换为常用格式)
    const currentYear = currentStart.getFullYear();
    const currentMonth = currentStart.getMonth() + 1;
    console.log(`当前年份:${currentYear},当前月份:${currentMonth}`);
  };

  return (
    <FullCalendar
      ref={calendarRef}
      headerToolbar={false}
      plugins={[
        dayGridPlugin,
        timeGridPlugin,
        interactionPlugin,
        listPlugin
      ]}
      initialView="dayGridMonth"
      themeSystem="bootstrap"
      dayMaxEvents={2}
      direction={isRTL ? 'rtl' : 'ltr'}
      height={800}
      stickyHeaderDates={true}
      editable
      selectable
      selectMirror
      expandRows
      slotEventOverlap={false}
      eventDrop={handleEventDrop}
      dateClick={handleDateSlotClickEvent}
      eventTimeFormat={eventTimeFormat}
      events={events}
      eventContent={renderEventContent}
      weekNumbers={displayWeekNumbers}
      // 添加datesSet回调
      datesSet={handleDatesSet}
    />
  );
};

export default YourComponent;

关键参数说明

datesSet 回调接收的 info 对象包含以下核心属性:

  • start: 当前视图显示的起始日期(原生Date对象)
  • end: 当前视图显示的结束日期(原生Date对象,注意是排他的,比如月份视图的end是下一月的第一天)
  • view: 当前视图的详细信息,包括type(视图类型)、title(视图标题,如"2024年5月")等

不管是点击Next/Previous按钮,还是通过其他方式切换视图日期,这个回调都会触发,能准确获取到导航后的日期信息供你使用。

内容的提问来源于stack exchange,提问作者ololo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:50:22