我正在尝试以 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 进行设置的说明。