【发布时间】:2019-07-21 07:04:41
【问题描述】:
我在其中使用 Formik 和 react-datepicker。
当我选择日期并点击提交表单时,它会显示"startDate": '',当我将initialValues={{ startDate: '' }} 更改为initialValues={{ startDate: this.state.startDate }} 时,它会显示今天的日期(当前日期)。
但我想得到选定的日期。
//import libraries
import React from 'react'
import { Formik, Form } from 'formik'
import DatePicker from "react-datepicker"
import "react-datepicker/dist/react-datepicker.css";
//Class component
export default class InsertStockComponent extends React.Component {
state = {
startDate: new Date()
}
handleChange = (date) => {
this.setState({
startDate: date
});
}
render() {
return (
<div id="main-content">
<Formik
initialValues={{ startDate: '' }}
onSubmit={(values, { setSubmitting }) => {
setTimeout(() => {
alert(JSON.stringify(values, null, 2));
setSubmitting(false);
}, 400);
}}
>
{({ isSubmitting }) => (
<div className="row clearfix">
<div className="header">
</div>
<Form>
<div className="row ml-4 mr-4">
<div className="form-group col-3 mb-2">
<DatePicker selected={this.state.startDate} dateFormat="MMMM d, yyyy" className="form-control" name="startDate" onChange={this.handleChange} />
</div>
</div>
<div className="row mb-3">
<div className="col-5 mb-4"></div>
<button type="submit" className="btn btn-lg btn-outline-success mt-4 mb-4" disabled={isSubmitting}>insert item</button>
</div>
</Form>
</div>
)}
</Formik>
</div>
)
}
}
【问题讨论】: