无法在日期范围选择器js反应中设置默认值

问题描述 投票:0回答:1

我正在使用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 `[email protected]`, 

这里是代码:

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

帮助我一些解决方案。

javascript html reactjs react-native antd
1个回答
0
投票

我面临类似的问题。就我而言,我收到的字符串数组中的日期,必须在RangePicker中预先填充。后来我发现,它只需要typeof moment.Moment对象,而无需其他任何东西。所以我创建了一个像这样的函数:

private formatStringsToDate = (dates: Array<string>) => dates.map((date: string) => moment(date));
© www.soinside.com 2019 - 2024. All rights reserved.