📅  最后修改于: 2023-12-03 15:34:39.257000             🧑  作者: Mango
React Suite日历组件是一个强大且易于使用的组件,它可以帮助开发人员快速构建日期选择器、日历和时间选择器等功能。该组件具有高度的可自定义性和灵活性,可以满足多种需求。
npm install rsuite --save
import Calendar from 'rsuite';
import React, { useState } from 'react';
import { Calendar } from 'rsuite';
function MyCalendar() {
const [value, setValue] = useState(new Date());
function handleChange(value) {
setValue(value);
}
return (
<Calendar
onChange={handleChange}
value={value}
/>
);
}
export default MyCalendar;
| Name | Type | Default | Description |
| -------------- | ------------------- | ------------ | ----------------------------------------- |
| value | Date or [Date, Date]
| - | Date or Date Array |
| defaultValue | Date or [Date, Date]
| - | 初始值 |
| isoWeek | boolean
| true
| 是否采用ISO周模式,默认为true |
| hoverValue | Date or [Date, Date]
| - | 高亮显示的日期 |
| disabledDate | (date: Date) => boolean
| false
| 自定义禁用日期列表 |
| format | string
| "YYYY-MM-DD"
| 日期格式 |
| locale | object
| | 国际化配置 |
| appearance | string
| "default"
| 外观 |
| placement | string
| "bottom-start"
| 弹窗位置 |
| cleanable | boolean
| - | 是否有清除按钮 |
| showWeekNumbers| boolean
| - | 是否显示周数 |
| showMeridian | boolean
| - | 是否显示上午和下午选项 |
| disabled | boolean
| - | 是否禁用 |
| readOnly | boolean
| - | 是否只读 |
| open | boolean
| - | 是否打开弹窗选择器 |
| onOpen | () => void
| - | 弹窗选择器打开时的回调函数 |
| onClose | () => void
| - | 弹窗选择器关闭时的回调函数 |
| onChange | (date: Date) => void or (date: RangeValue) => void
| - | 日期选择事件回调函数,如果range选择,则返回一个数组 |
| onClean | () => void
| - | 清除按钮事件回调函数 |
| onOk | (date: Date) => void or (date: RangeValue) => void
| - | 点击确认按钮的回调函数 |
React Suite支持自定义主题,只需使用 <ThemeProvider />
包装组件即可。
import React from 'react';
import { ThemeProvider } from 'styled-components';
import { createGlobalStyle } from 'styled-components';
const myTheme = {
$calendarCellBg: '#3f3f3f',
$calendarCellHoverBg: '#3D3D3D',
$calendarCellSelectedBg: '#80C493',
};
const GlobalStyle = createGlobalStyle`
.my-calendar .rs-calendar-cell {
background-color: ${myTheme.$calendarCellBg};
}
.my-calendar .rs-calendar-cell:hover {
background-color: ${myTheme.$calendarCellHoverBg};
}
.my-calendar .rs-calendar-cell.rs-calendar-selected {
background-color: ${myTheme.$calendarCellSelectedBg};
}
`;
function App() {
return (
<ThemeProvider theme={myTheme}>
<GlobalStyle />
<Calendar />
</ThemeProvider>
);
}
export default App;
React Suite日历组件是一个高度可定制的组件,可以帮助开发人员快速构建日期选择器、日历和时间选择器等功能。此外,它还支持多语言国际化和自定义主题等功能。