首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Formik组件中使用react-datetime保存数据时出现问题

在Formik组件中使用react-datetime保存数据时出现问题
EN

Stack Overflow用户
提问于 2019-01-04 21:07:39
回答 2查看 2.3K关注 0票数 0

我正在尝试将我的默认日期选择器更改为DateTime。我正在使用Formik,我知道这是一个自定义输入的问题。现在,当我保存更改时,表单是保存的,但保存的是当前日期,而不是我选择的日期。有什么办法解决这个问题吗?我的代码(datepicker的一部分):

代码语言:javascript
复制
<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}
 />

值之前为this.props.dateFrom,因为在编辑现有条目时会显示相同的组件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-12 06:58:57

我在做研究,尝试不同的方法,并向其他开发人员寻求帮助。我想出了这个解决方案,它对我很有效:

代码语言:javascript
复制
<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函数:

代码语言:javascript
复制
formatDate(momentDate) {        
    return moment(momentDate).format("YYYY-MM-DD");
}
票数 2
EN

Stack Overflow用户

发布于 2019-04-24 18:00:53

我在render中找到了另一个解决方案,如下所示

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

CodeSandbox

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54039555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档