From cf4852665558656f1cee4dc35ee75f2124698cd7 Mon Sep 17 00:00:00 2001 From: afc163 Date: Fri, 13 Nov 2015 20:20:54 +0800 Subject: [PATCH] props.value is original Date object now --- components/calendar/demo/custom-render.md | 3 ++- components/calendar/index.jsx | 22 ++++++++-------------- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/components/calendar/demo/custom-render.md b/components/calendar/demo/custom-render.md index d81be5f13..4ad3c6be8 100644 --- a/components/calendar/demo/custom-render.md +++ b/components/calendar/demo/custom-render.md @@ -18,6 +18,7 @@ function monthCellRender(value) { } ReactDOM.render( - + , document.getElementById('components-calendar-demo-custom-render')); ```` diff --git a/components/calendar/index.jsx b/components/calendar/index.jsx index f6dc475e9..1ba8390d2 100644 --- a/components/calendar/index.jsx +++ b/components/calendar/index.jsx @@ -12,20 +12,19 @@ function zerofixed (v) { return v + ''; } -function getNow() { - const value = new GregorianCalendar(); - value.setTime(Date.now()); - return value; -} - class Calendar extends Component { constructor(props) { super(); this.state = { - value: props.value || getNow(), + value: this.parseDateFromValue(props.value), type: props.type, }; } + parseDateFromValue(value) { + const date = new GregorianCalendar(); + date.setTime(value); + return date; + } monthCellRender(value, locale) { const prefixCls = this.props.prefixCls; const month = value.getMonth(); @@ -61,12 +60,6 @@ class Calendar extends Component { this.setState({ type }); this.props.onTypeChange(type, oldType); } - onPanelChange(value) { - if (this.state.type === 'month') { - this.setType('date'); - } - this.setValue(value); - } render() { const props = this.props; const {value, type} = this.state; @@ -90,7 +83,6 @@ class Calendar extends Component { prefixCls={`${prefixCls}`} showHeader={false} value={value} - onChange={this.onPanelChange.bind(this)} monthCellRender={ this.monthCellRender.bind(this) } dateCellRender={ dateCellRender.bind(this) } /> @@ -107,6 +99,7 @@ Calendar.propTypes = { className: PropTypes.string, style: PropTypes.object, onChange: PropTypes.func, + value: PropTypes.instanceOf(Date), onTypeChange: PropTypes.func, }; @@ -119,6 +112,7 @@ Calendar.defaultProps = { onChange: noop, onTypeChange: noop, type: 'date', + value: Date.now(), }; export default Calendar;