Изменение представления месяца React-Calendar
Я использую React-Calendar, и я не могу изменить месяц, щелкая стрелки (назад / вперед) на панели навигации, где отображается название месяца. Мой код:
...
const onActiveStartDateChangeHandler = ({ activeStartDate, value, view }) => {
console.log("vv:", activeStartDate, value, view);
};
...
return (
<div className="popupFormSelector arrowLft pb-8">
<h2 className="text-center font-bold mt-7 mb-5">Set a deadline</h2>
<Delete classes="right-5 top-5" onClickHandler={toggleCalendar} />
<Calendar
activeStartDate={teamStartDate}
calendarType="US"
defaultView="month"
maxDetail="month"
maxDate={endDate}
minDate={teamStartDate}
next2Label={null}
onActiveStartDateChange={onActiveStartDateChangeHandler}
onChange={onChangeHandler}
prev2Label={null}
selectRange={false}
showDoubleView={false}
showFixedNumberOfWeeks={false}
showNavigation={true}
showNeighboringMonth={true}
tileClassName={tileClasses}
tileDisabled={({ activeStartDate, date, view }) =>
date < teamStartDate || date > endDate
}
value={new Date()}
view={"month"}
/>
Из console.log в обработчике для
onActiveStartDateChange
, Я вижу, что дата изменилась в журнале, однако представление остается в текущем месяце. Что я делаю неправильно?
1 ответ
Представление месяца не изменится, потому что оно привязано к значению, которое вы указали здесь:
activeStartDate={теамстартдате}
Как указано в документах , это инициирует «контролируемое» поведение:
activeStartDate Начало отображаемого периода. Если вы хотите использовать React-Calendar неконтролируемым образом, вместо этого используйте defaultActiveStartDate.
Так что либо используйте
defaultActiveStartDate
вместо
activeStartDate
если он соответствует вашему варианту использования, или вы можете просто обновить значение
teamStartDate
в методе вот так:
const onActiveStartDateChange = ({activeStartDate}) => teamStartDate = activeStartDate