react-calendar文档详解+翻译

react-calendar

是一个 基于react的日期显示控件。

显示效果:1、


2、

3、

示例demo: + 注释

import React, { Component } from 'react';
import Calendar from 'react-calendar';
import { MonthView, YearView, DecadeView, CenturyView } from "react-calendar";
import moment from 'moment';

class MyApp extends Component {
state = {
date: new Date(),
}

onChange = date => {
console. log(date, "onchange");
this. setState({ date })
}

formatMonth = ( value, type) => {
console. log(value, type);
return value. getMonth() + 1 + "月";
}

render() {
return (
< div>
{ /* Calendar 组件 注释 文档 */ }
< Calendar
onChange = { this.onChange } //最小的日期发生改变时触发
value = { this.state.date } // 日历的值 可以是 一个 Date对象,也可以是 一个 数组: [new Date(2017, 0, 1), new Date(2017, 7, 1)]
activeStartDate = {new Date( 2017, 0, 1) } // 没有设置值时,默认开始的时间(默认显示的时间)
calendarType = "ISO 8601" //默认值 : US ,us表示第一天是周天, 其他的 都是 ISO8601 第一天是周一
className = "my-calendar" //在 calendar 最外层 盒子添加 类名
formatMonth = {( value) => this. formatMonth(value, "MMM") } //自定义格式化 月份
maxDate = {( new Date( 2019, 10, 1)) } //允许选择 的最大日期
maxDetail = { "month" } // 视图中展示的最大细节,可取的值 为: "month", "year", "decade" or "century". Defaults to "month".  "month"
minDate = {new Date() }
nextLabel = {< div className = "444">next</ div> } //下一个月的图标显示 值可以是dom元素,也可以是 string类型的字符串
onActiveDateChange = {({ activeStartDate, view }) => alert( 'Changed view to: ', activeStartDate, view) } //点击下一个月 或者 下一年 时触发(比较大的日期改变时触发)
// onClickDay={(value) => alert('Clicked day: '+ value)} //只有点击 “天” 时 触发 点击事件
// onClickDecade={(value) => alert('Clicked decade: ', value)}
// onClickMonth={(value) => alert('Clicked month: ', value)}
// onClickWeekNumber={(weekNumber, date) => alert('Clicked week: ', weekNumber, 'that starts on: ', date)}
// onClickYear={(value) => alert('Clicked year: ', value)} //点击 “年” 的时候触发
onDrillDown = {({ activeStartDate, view }) => alert( 'Drilled down to: ', activeStartDate, view) }
returnValue = "range" // 取值范围 是 : "start", "end" or "range". 当 触发 onchange 或者 onClick事件 时,回调函数中 日期分别为 这一天的 开始时间 ,结束时间。range返回一个数组,这一天的开始时间和结束时间
showNavigation = { true } //顶部导航 是否 显示 ,默认 true
showNeighboringMonth = { true } //上一个 月的是否渲染
selectRange = { false } //是否必须选取一个范围的值, 两个值之间。 默认 false
showWeekNumbers = { false } //是否显示第几周,默认false
tileClassName = "aa bb cc" //给按钮 增加类名 可以是 String: "class1 class2" 或者给一个数组 Array of strings: ["class1", "class2 class3"] ,可以是function : Function: ({ date, view }) => view === 'month' && date.getDay() === 3 ? 'wednesday' : null
tileContent = "" // 在每一个格中显示的内容 1、String: "Sample" 2、 React element: <TileContent /> 3、 Function: ({ date, view }) => view === 'month' && date.getDay() === 0 ? <p>It's Sunday!</p> : null
view = "month" // 默认展示的视图,月份,年份,还是 十年 世纪 "month", "year", "decade" or "century".
/>

< br />

{ /* MonthView, YearView, DecadeView, CenturyView 注释文档 */ }

< MonthView
activeStartDate = {( new Date()) }
hover = {new Date( 2017, 0, 1) }
maxDate = {( new Date( 2018, 10, 8)) }
minDate = {( new Date( 2015, 10, 8)) }
onClick = {( data) => { console. log( JSON. stringify(data)) } }
tileClassName = "33 44 555"

tileContent = {({ date, view }) => (view === 'month' && date. getDay() === 5 ? < p>It's Sunday!</ p> : null) } //每个日历 表格 的渲染的 组件 或者文本
value = {[ '2017-01-01', '2017-08-01'] }
/>

< br />

< YearView
activeStartDate = {( new Date()) }
hover = {new Date( 2017, 0, 1) }
maxDate = {( new Date( 2018, 10, 8)) }
minDate = {( new Date( 2015, 10, 8)) }
onClick = {( data) => { console. log( JSON. stringify(data)) } }
tileClassName = "33 44 555"

tileContent = {({ date, view }) => (view === 'month' && date. getDay() === 5 ? < p>It's Sunday!</ p> : null) } //每个日历 表格 的渲染的 组件 或者文本
value = {[ '2017-01-01', '2017-08-01'] }
/>

< br />

< DecadeView
activeStartDate = {( new Date()) }
hover = {new Date( 2017, 0, 1) }
maxDate = {( new Date( 2018, 10, 8)) }
minDate = {( new Date( 2015, 10, 8)) }
onClick = {( data) => { console. log( JSON. stringify(data)) } }
tileClassName = "33 44 555"

tileContent = {({ date, view }) => (view === 'month' && date. getDay() === 5 ? < p>It's Sunday!</ p> : null) } //每个日历 表格 的渲染的 组件 或者文本
value = {[ '2017-01-01', '2017-08-01'] }
/>

< br />

< CenturyView
activeStartDate = {( new Date()) }
hover = {new Date( 2017, 0, 1) }
maxDate = {( new Date( 2018, 10, 8)) }
minDate = {( new Date( 2015, 10, 8)) }
onClick = {( data) => { console. log( JSON. stringify(data)) } }
tileClassName = "33 44 555"

tileContent = {({ date, view }) => (view === 'month' && date. getDay() === 5 ? < p>It's Sunday!</ p> : null) } //每个日历 表格 的渲染的 组件 或者文本
value = {[ '2017-01-01', '2017-08-01'] }
/>

</ div>
);
}
}

export default MyApp;


猜你喜欢

转载自blog.csdn.net/itzhongzi/article/details/79974886