关于 syncfusion-react-calendar
面向 React 开发者的 Syncfusion Calendar 技能,提供快速入门、日期选择模式和 API 参考。内容涵盖受控组件、多日期选择、视图导航及相关辅助指南。
主要功能
- 01React Calendar 安装与快速入门
- 02受控组件与日期状态同步
- 03单选及多日期选择指导
- 04日历视图与程序化导航
- 05样式、可访问性和本地化参考
适用场景
- 01在 React 应用中集成 CalendarComponent
- 02实现受控日期选择与多选
- 03配置月份、年份及年代视图导航
- 04排查样式或周数显示问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ syncfusion/ react-ui-components-skills --skill syncfusion-react-calendar安装后在 Claude Code 中输入/syncfusion-react-calendar确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/accessibility-globalization.mdapi-reference.mdcalendar-views.mddate-selection.mdevents-methods.mdgetting-started-react.mdstyling-customization.md详细介绍
实现日历(React)
目录
概述
此技能提供:简短的 React 快速入门、推荐模式(单日期、范围选择、受控组件),以及两个参考文件:React 专用的入门指南和根据 Syncfusion React Calendar 文档整理的简明 API 参考。
目标包:@syncfusion/ej2-react-calendars(CalendarComponent)
快速开始(React)
安装
npm install @syncfusion/ej2-react-calendars @syncfusion/ej2-base
基本示例(App.jsx)
import React, { useState } from 'react';
import { CalendarComponent } from '@syncfusion/ej2-react-calendars';
import '@syncfusion/ej2-base/styles/material3.css';
import '@syncfusion/ej2-calendars/styles/material3.css';
export default function App() {
const [value, setValue] = useState(new Date());
const onChange = (args) => setValue(args.value || args);
return (
<div style={{ padding: 20 }}>
<h3>Select a date</h3>
<CalendarComponent value={value} change={onChange} />
<p>Selected: {value.toDateString()}</p>
</div>
);
}
说明:
- 使用
change事件将所选日期同步到 React 状态。 - 导入一次主题 CSS(全局导入或在组件级别导入),为控件添加样式。
指南与模式
- 受控组件: 将真实数据源保存在 React 状态中,并通过
change事件更新value。 - 多选: 使用
isMultiSelection={true}和values属性,以及addDate()/removeDate()方法。 - 以编程方式导航: 使用
ref调用navigateTo(view, date)——两个参数都是必需的(请参阅 references/getting-started-react.md)。 - 日期范围: 如需选择范围,请使用 DateRangePicker(单独的组件)。Calendar 本身没有内置的范围高亮模式。
- 无障碍: 使用带有
role="region"的包装元素,并设置单独的aria-live区域用于播报——这些不是 Calendar 的直接属性。 - 周数: 使用
weekNumber={true}启用(正确的属性名)。
参考资料
请前往与当前任务对应的参考资料:
入门指南
📄 阅读: references/getting-started-react.md
- 安装和 npm 设置
- React 组件示例
- CSS/主题导入
- 使用 refs 和方法
日期选择
📄 阅读: references/date-selection.md
- 单日期选择
- 多日期和范围
- 最小值/最大值限制
- 禁用特定日期
日历视图
📄 阅读: references/calendar-views.md
- 月、年、十年视图
- 在不同视图之间导航
- 初始视图和深度控制
- 以编程方式导航
样式与自定义
📄 阅读: references/styling-customization.md
- 主题选择与切换
- CSS 类自定义
- 自定义日期单元格渲染
- RTL 和响应式设计
事件与方法
📄 阅读: references/events-methods.md
- 事件处理程序(change、created、renderDayCell)
- 使用 refs 和命令式方法
- 高级 renderDayCell 钩子
- 事件跟踪模式
无障碍与全球化
📄 阅读: references/accessibility-globalization.md
- 符合 WCAG 2.1 标准
- 键盘导航
- ARIA 属性
- 区域设置支持和 RTL
- 无障碍测试
API 参考(快速查阅)
📄 阅读: references/api-reference.md
- 快速了解属性、事件和方法
- 常见枚举和类型
- 上游文档链接
故障排查与提示
- 样式未应用: 确认 CSS 导入指向
node_modules/@syncfusion/ej2-calendars/styles/,并且在组件样式之前加载。 - React 状态不匹配: 使用
value属性和change事件来保持 React 状态同步——不要依赖特定框架的绑定。 - 无法多选日期: 确保
isMultiSelection={true},并使用values(而非value)设置初始数组。 navigateTo无法使用: 该方法需要两个参数——navigateTo(view: CalendarView, date: Date)。- “Cannot find module”: 运行
npm install @syncfusion/ej2-react-calendars @syncfusion/ej2-base,并确认package.json。 - 未显示周数: 使用
weekNumber={true}(而非showWeekNumber)。
评论
支持 Markdown