I am using react v.15. Using the react-datepicker library is giving issues when using the default code. I've successfully modified the codes but whenever I click on the selected date, it's not showing any date at all. Here's what my code looks like:
import * as React from 'react';
let DatePicker = require('react-datepicker');
import 'react-datepicker/dist/react-datepicker.css';
export default class DtePicker extends React.Component<any, any> {
constructor() {
super()
this.state = {
startDate: new Date(),
}
this.handleChange = this.handleChange.bind(this)
}
handleChange(date) {
this.setState({
startDate: date
});
};
render() {
return (
<div>
<DatePicker
dateFormat='yyyy/MM/dd'
selected={this.state.startDate}
onChange={this.handleChange}
/>
</div>
);
}
}
Am I missing a code perhaps in my handleChange function? Also, it's a typescript file, using ASP.Net framework.
After specifying the versions I was seeing a "date.clone is not a function" error, so I suspected there was an issue with moment
.
react-datepicker
v0.40.0 uses moment under the hood
Selected date must be a moment
object, so we save each date object as a moment
date object.
class DtePicker extends Component {
constructor(props) {
super(props); // Don't forget to pass props to super constructor!
this.state = {
startDate: moment(new Date())
};
this.handleChange = this.handleChange.bind(this);
}
handleChange(date) {
this.setState({
startDate: moment(date)
});
}
render() {
return (
<div>
<DatePicker
dateFormat="YYYY/MM/dd" // Also corrected date format
selected={this.state.startDate}
onChange={this.handleChange}
/>
</div>
);
}
}