我在 react-datepicker 上遇到了一个奇怪的问题。我已经让我的 datepicker 与 redux 表单兼容,代码在这里:
<DatePicker
customInput={<CustomDateInputNew {...props} />}
onChange={date => {
props.input.onChange(date ? formatValueToState(date) : "");
if (props.onSelect) {
props.onSelect(date);
}
}}
dateFormat="DD/MM/YYYY"
openToDate={props.openToDate}
selected={
props.input.value ? parseStateToValue(props.input.value) : undefined
}
filterDate={day => isDateUnavailable(day, props.availability)}
locale={moment.locale("en-gb")} //sets monday first day of week
/>
filterDate 函数显示为启用包含在数组中的日期,她的实现是这样的:
export const isDateUnavailable = (day, daysArray) => {
if (!days) {
return true;
}
return days.filter(item => moment(item).isSame(day)).length > 0;
};
其中 days 是一个格式为 ['2018-09-09'] 的数组。此日期选择器将显示此数组中包含的日期。单击后 tw0 或 3 秒后出现的日期选择器出现问题。为什么会这样?是否有其他人面临相同或相对的问题?与filterDates有关吗?谢谢!