Как получить выбранное событие в React Big Calendar?

#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 не покажет эти изменения.