我对如何处理 react-dates[DateRangePicker] onDatesChange 和 onFocusChange 感到困惑,因为它们每个都有两个值。 onDatesChange应该能够设置多个值,即开始日期和结束日期。
我试图用 formik 围绕 daterangepicker 构建一个自定义包装器。
检查控制台是否有错误
`<div className="form-group">
<label>DatePickerWithFormik</label>
<Field component={DatePickerWithFormik} name="DatePickerWithFormik"
className="form-control" />
</div>`
`export const DatePickerWithFormik = ({ startDateId, endDateId, form: { setFieldValue, setFieldTouched }, field, ...props }) => {
const [focused, setFocused] = useState(null); // this will be removed
return(
<div>
{/* {console.log('Inside datpicer', field.name)} */}
<DateRangePicker
{...props}
startDateId="startDateId"
endDateId="endDateId"
onDatesChange={(value) =>
field.onChange(setFieldValue(field.name, value) )}
onFocusChange={focused => setFocused(focused)}
focusedInput={focused}
startDate={field.startDate}
endDate={field.endDate}
/>
{/* {console.log(field)} */}
</div>
);
};
`
- 预期结果:应该能够将开始和结束日期保存在本地状态并显示在屏幕上。
参考工作链接:https : //codesandbox.io/s/l72w6n8l0m