【发布时间】:2019-05-26 09:42:04
【问题描述】:
我正在尝试在 Formik 表单中使用 react-datepicker。
我有:
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
class Fuate extends React.Component {
state = {
dueDate: new Date()
}
<Formik
initialValues={initialValues}
validationSchema={Yup.object().shape({
title: Yup.string().required("A title is required "),
})}
onSubmit={this.handleSubmit}
render={({
errors,
status,
touched,
setFieldValue,
setFieldTouched,
handleChange,
handleBlur,
handleSubmit,
isSubmitting,
dirty,
values
}) => {
return (
<div>
...
<DatePicker
name={'dueDate'}
value={values['dueDate']}
onChange={e => setFieldValue('dueDate', e)}
/>
<DatePicker
style={{ width: 180 }}
date={values.dueDate}
mode="date"
format="YYYY-MM-DD"
minDate={Date.now.toString()}
maxDate="2050-06-01"
confirmBtnText="Confirm"
cancelBtnText="Cancel"
showIcon={false}
customStyles={{
dateInput: {
marginLeft: 0,
borderColor: "#fff"
}
}}
onDateChange={date => setFieldValue("dueDate", date)}
onTouch={setFieldTouched}
/>
对于这两个选项,表单呈现,我可以在日历上选择一个日期,但它不会出现在框中,并且状态值不会随着选择而更新。
控制台没有错误,但是警告说:
从 v2.0.0-beta.1 开始 date-fns 不接受字符串为 论据。请使用
parseISO解析字符串。看: toDate@index.js:45
我尝试制作初始状态:
dueDate: new Date().toISOString(),
但没有区别。
我看过很多关于使用 Antd 的日期选择器进行设置的帖子,但找不到如何使用 react-datepicker 进行设置的说明。
【问题讨论】:
-
别管大家。我已经放弃了试图解决这个问题。我发现 react-formik-ui 它工作得很好
-
仍在回答,因为这个问题是有效的,并且可能对将来有相同查询的人有用。
标签: reactjs forms date formik react-datepicker