props.value is original Date object now

This commit is contained in:
afc163
2015-11-13 20:20:54 +08:00
parent e8bc6f58ba
commit cf48526655
2 changed files with 10 additions and 15 deletions
+2 -1
View File
@@ -18,6 +18,7 @@ function monthCellRender(value) {
}
ReactDOM.render(
<Calendar type="date" value={new Date()} dateCellRender={dateCellRender} monthCellRender={monthCellRender} />
<Calendar type="date" value={new Date('2010-10-10')}
dateCellRender={dateCellRender} monthCellRender={monthCellRender} />
, document.getElementById('components-calendar-demo-custom-render'));
````
+8 -14
View File
@@ -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) } />
</div>
@@ -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;