Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

371
Visualizações
React Big Calendar - Is it possible to click on a day and retrieve a list of events on that day?

I'm creating a calendar of sales appointments using React Big Calendar. When a user clicks on a day, I would like to create a map populated with all of the appointment locations for that day. But to do that, I need a list of events specific to that day. I know that I could write a function that filters the list of events supplied to the calendar component, but I'd rather not do that if React Big Calendar comes with that functionality already.

Here is my code for the Calendar component:

<Calendar
    localizer={localizer}
    events={events}
    startAccessor='start'
    endAccessor='end'
    style={{ height: 500 }}
    onSelectSlot={(slotInfo) => {
        console.log(slotInfo)
    }}
    selectable
    popup={true}
    eventPropGetter={(eventStyleGetter)}
/>

As you can see, I've tried using onSelectSlot prop, which console logs slotInfo. Here is the result in the console when I select a slot that has multiple events:

{
    "slots": [
        "2022-02-16T08:00:00.000Z"
    ],
    "start": "2022-02-16T08:00:00.000Z",
    "end": "2022-02-17T08:00:00.000Z",
    "action": "click",
    "box": {
        "x": 769,
        "y": 491,
        "clientX": 769,
        "clientY": 491
    }
}

I'm confused why there is only one slot in the slot array if there are multiple events? Is there a way to get all of the events of that day without writing a function to filter the events array?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Adding the selectable prop means that users can use the mouse to click and drag in order to select a range of times. The slots array will not give you all the events for the day, or for the selected range - rather, it'll give you just the selected range.

If you click on a day, the (only) value in the slots array will be the Date corresponding to the start of the day. You can use the start and end properties to see when the day starts and when it ends (exclusive).

If you click and drag, the slots array will contain all timeslots dragged over, where the duration of a timeslot is determined by the steps prop.

If you want to get a list of all elements for a particular day when the day is clicked, you can either filter out the events that don't match inside the onSelectSlot callback, or to pass down event objects that contain a reference to an array containing all events for that day. It does require a tiny bit of code on your part, but that's nothing to be afraid of.

const { start, end } = slotInfo;
const eventsForThisDay = events.filter(
  event => event.start >= start && event.start < end
);
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda