反应日期选择器失败,时刻和新日期



我正在尝试使用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属性。

最新更新