我正在使用ant js中的日期范围选择器。 https://ant.design/components/date-picker/
我可以从start and end date
获取date picker
并将其设置在states
中。
但是,如果我想将defaut值设置为日期选择器,则无法设置它。
它显示以下错误:
react-dom.production.min.js?ca5d:196 Error: The value/defaultValue of RangePicker must be a moment object array after `antd@2.0`,
这是代码:
import React from 'react';
import { DatePicker} from 'antd';
class DataCheck extends React.Component {
state = { startDate:"",endDate:""}
onDateChange(date) {
this.setState({startDate:date[0]['_d'],endDate: date[1]['_d']})
}
onInitialDateSet(){
var end_date = new Date();
end_date.setDate(end_date.getDate()-15)
this.setState({startDate:new Date(), endDate:end_date})
}
componentDidMount(){
this.onInitialDateSet()
}
render() {
const { RangePicker } = DatePicker;
return (
<div>
<RangePicker defaultValue ={[moment(this.state.startDate), moment(this.state.endDate)]} size={'small'} onChange={this.onDateChange.bind(this)} />
</div>
);
}
}
export default DateCheck
为我提供一些解决方案。
答案 0 :(得分:0)
我遇到了类似的问题。在我的情况下,我收到的字符串数组中的日期,必须在RangePicker中预先填充。后来我发现,它只需要typeof moment.Moment
对象,而无需任何其他操作。所以我创建了一个像这样的函数:
private formatStringsToDate = (dates: Array<string>) => dates.map((date: string) => moment(date));