#javascript #reactjs #react-big-calendar
#javascript #reactjs #react-big-calendar
Вопрос:
<BigCalendar
events={dummyEvents}
onSelectEvent={event => alert(event)}
eventPropGetter={eventStyleGetter}
/>
После отображения событий BigCalendar
я хочу знать, какое событие выбрано. Но этот фрагмент просто отображает только пустую строку?
Как получить выбранное событие в React Big Calendar?
Комментарии:
1. Не могли бы вы создать воспроизводимый пример, пожалуйста? Кроме того, используйте консоль. предупреждение о выходе из системы
2. Да, консоль. журнал сработал.
Ответ №1:
Вы пытаетесь получить alert()
объект. onSelectEvent
Метод получает все event
, на что вы нажали {start, end, allDay, ...rest}
, где start
и end
оба должны быть объектами true JS Date. И, поскольку вы включили onSelectEvent
, теперь вы должны управлять selected
своим календарем.
const [selected, setSelected] = useState();
const handleSelected = (event) => {
setSelected(event);
console.info('[handleSelected - event]', event);
};
<Calendar
selected={selected}
onSelectEvent={handleSelected}
{...otherProps}
/>
Важное примечание: selected
должна быть ссылка на объект в вашем events
массиве. event
Отправленное на onSelectEvent
является ссылкой, а не копией. Если вы измените значение состояния позже, без обновления events
массива, RBC не покажет эти изменения.