在Formik组件中使用react-datetime保存数据的问题

时间:2019-01-04 13:07:39

标签: javascript reactjs datetimepicker formik

我正在尝试将默认日期选择器更改为DateTime。我正在使用Formik,并且我知道这是自定义输入的问题。目前,当我保存更改时,将保存表格,但是保存当前日期,而不保存我选择的日期。任何想法如何解决这一问题?我的代码(带日期选择器的部分)目前:

blockquote p:first-child:before {content: open-quote;}
blockquote p:last-child:after {content: close-quote;}

值以前是<Datetime id="dateFrom" name="dateFrom" placeholder="Enter date" value={this.props.dateFrom} onChange={this.props.onChange} onBlur={this.props.onBlur} isInvalid={!!this.props.errors.dateFrom} readOnly={this.props.status !== ProjectStatus.InProgress} /> ,因为编辑现有条目时会显示相同的组件。

2 个答案:

答案 0 :(得分:2)

我正在做研究,尝试不同的方法,并寻求其他开发人员的帮助。我想出了适合我的解决方案:

<Datetime
    id="dateFrom"
    name="dateFrom"
    placeholder="Enter date"
    value={this.props.dateFrom}
    onChange={(dateFromValue) => {this.props.setFieldValue('dateFrom', this.formatDate(dateFromValue))}}
    onBlur={this.props.onBlur}
    isInvalid={!!this.props.errors.dateFrom}
    readOnly={this.props.status !== ProjectStatus.InProgress}
/>

和formatDate函数:

formatDate(momentDate) {        
    return moment(momentDate).format("YYYY-MM-DD");
}

答案 1 :(得分:1)

我在render中找到了另一个解决方案 像这样

<Field
    name="time"
    render={({field,form:{isSubmitting}})=>(
        <Datetime onChange={time=>{setFieldValue('time',time.format('YYYY-MM-DD'))}}/>
    )}
/>

CodeSandbox