Проблема с сохранением данных с помощью response-datetime внутри компонента Formik - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь изменить свой указатель даты по умолчанию на DateTime . Я использую Formik, и я знаю, что это проблема с пользовательскими вводами. На данный момент, когда я сохраняю изменения, форма сохраняется, но с текущей датой, а не с той, которую я выбрал. Любые идеи, как это исправить? Мой код (часть с указателем даты) на данный момент:

<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 ранее, потому что тот же компонент появляется при редактировании существующей записи.

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019

я найду другое решение в render как это

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

CodeSandbox

0 голосов
/ 12 января 2019

Я занимался исследованиями, пробовал разные подходы и обращался за помощью к другим разработчикам. Я пришел с этим решением, которое работает для меня:

<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");
}
...