修改后的 react-datepicker 不显示值
Modified react-datepicker not showing value
我正在使用 React v.15。使用默认代码时,使用 react-datepicker 库会出现问题。我已成功修改代码,但每当我点击所选日期时,它根本不显示任何日期。这是我的代码:
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.
试试这个。它工作正常
import React from "react";
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
class DtePicker extends React.Component {
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>
);
}
}
查看直播demo
指定版本后我看到 "date.clone is not a function" 错误,所以我怀疑 moment
有问题。
react-datepicker
v0.40.0 在后台使用 moment
选择的日期必须是一个moment
对象,所以我们将每个日期对象保存为一个moment
日期对象。
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>
);
}
}
- 时刻v2.24.0
- 反应 v15.4.1
- react-datepicker v0.40.0
- react-dom v15.4.1
我正在使用 React v.15。使用默认代码时,使用 react-datepicker 库会出现问题。我已成功修改代码,但每当我点击所选日期时,它根本不显示任何日期。这是我的代码:
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.
试试这个。它工作正常
import React from "react";
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
class DtePicker extends React.Component {
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>
);
}
}
查看直播demo
指定版本后我看到 "date.clone is not a function" 错误,所以我怀疑 moment
有问题。
react-datepicker
v0.40.0 在后台使用 moment
选择的日期必须是一个moment
对象,所以我们将每个日期对象保存为一个moment
日期对象。
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>
);
}
}
- 时刻v2.24.0
- 反应 v15.4.1
- react-datepicker v0.40.0
- react-dom v15.4.1