我正在尝试使用moment
在反应日期选择器组件中设置minDate
属性:
if(this.props.minDate){
console.log('date:' + moment(this.props.minDate)); //1517436000000
return <DatePicker
minDate={ new moment(this.props.minDate)}
selected={this.state.startDate}
onChange={this.handleChange}
disabled = {this.props.disabled}
/>
或带new Date
:
console.log('new date:' + new Date(this.props.minDate)); // Thu Feb 01 2018 02:00:00 GMT+0200
return <DatePicker
minDate={ new Date(this.props.minDate)}
selected={this.state.startDate}
onChange={this.handleChange}
disabled = {this.props.disabled}
/>
我的最小日期字符串 -"2011-10-01"
. 结果仍然是当天,控制台中没有错误,感谢您的任何帮助。
我认为您必须为此提供值,因为minDate和maxDate用于验证目的。 仅当给定值或当前日期小于 min Date 时,minDate 才会成为结果值
class Example extends React.Component {
constructor (props) {
super(props)
this.minDate = new moment(props.minDate)
this.state = {
startDate: props.minDate
};
this.handleChange = this.handleChange.bind(this);
}
handleChange(date) {
this.setState({
startDate: date
});
}
render() {
return <DatePicker
selected={this.state.startDate}
onChange={this.handleChange}
minDate={this.minDate}
value={this.props.startDate}
/>;
}
}
在我看来,当您将数据传递给 minDate 属性时,您不需要新的时刻实例。你这样做minDate={ new moment(this.props.minDate)}
.
React-datepicker 已经在内部使用 moment 来操作数据对象,所以我认为你应该在将关键字 new 传递给 minDate 属性时将其删除。
我自己想这个,似乎如果设置了selected
属性,它将显示而不是minDate
属性。