jquense / react-big-calendar

gcal/outlook like calendar component
http://jquense.github.io/react-big-calendar/examples/index.html
MIT License
7.93k stars 2.24k forks source link

Click the event trigger rerender timesSlotWrapper #2629

Open RikoOrlando opened 4 months ago

RikoOrlando commented 4 months ago

Check that this is really a bug

Reproduction link

https://codesandbox.io/p/sandbox/zen-meadow-xh9n9k?file=%2Fsrc%2FReactBigCalendar.js%3A12%2C26&layout=%257B%2522sidebarPanel%2522%253A%2522EXPLORER%2522%252C%2522rootPanelGroup%2522%253A%257B%2522direction%2522%253A%2522horizontal%2522%252C%2522contentType%2522%253A%2522UNKNOWN%2522%252C%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522id%2522%253A%2522ROOT_LAYOUT%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522UNKNOWN%2522%252C%2522direction%2522%253A%2522vertical%2522%252C%2522id%2522%253A%2522clyzvc20b00063b6js5cdjmfn%2522%252C%2522sizes%2522%253A%255B100%252C0%255D%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522EDITOR%2522%252C%2522direction%2522%253A%2522horizontal%2522%252C%2522id%2522%253A%2522EDITOR%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522EDITOR%2522%252C%2522id%2522%253A%2522clyzvc20b00023b6j19pah1df%2522%257D%255D%257D%252C%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522SHELLS%2522%252C%2522direction%2522%253A%2522horizontal%2522%252C%2522id%2522%253A%2522SHELLS%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522SHELLS%2522%252C%2522id%2522%253A%2522clyzvc20b00033b6jllfl0twv%2522%257D%255D%252C%2522sizes%2522%253A%255B100%255D%257D%255D%257D%252C%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522DEVTOOLS%2522%252C%2522direction%2522%253A%2522vertical%2522%252C%2522id%2522%253A%2522DEVTOOLS%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522DEVTOOLS%2522%252C%2522id%2522%253A%2522clyzvc20b00053b6jdle2ltrs%2522%257D%255D%252C%2522sizes%2522%253A%255B100%255D%257D%255D%252C%2522sizes%2522%253A%255B50%252C50%255D%257D%252C%2522tabbedPanels%2522%253A%257B%2522clyzvc20b00023b6j19pah1df%2522%253A%257B%2522tabs%2522%253A%255B%257B%2522id%2522%253A%2522clyzvc20b00013b6jybqpiu24%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522type%2522%253A%2522FILE%2522%252C%2522filepath%2522%253A%2522%252Fsrc%252Findex.js%2522%252C%2522state%2522%253A%2522IDLE%2522%257D%252C%257B%2522id%2522%253A%2522clyzvqs8q00023b6jlhlgvjol%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522type%2522%253A%2522FILE%2522%252C%2522initialSelections%2522%253A%255B%257B%2522startLineNumber%2522%253A12%252C%2522startColumn%2522%253A26%252C%2522endLineNumber%2522%253A12%252C%2522endColumn%2522%253A26%257D%255D%252C%2522filepath%2522%253A%2522%252Fsrc%252FReactBigCalendar.js%2522%252C%2522state%2522%253A%2522IDLE%2522%257D%255D%252C%2522id%2522%253A%2522clyzvc20b00023b6j19pah1df%2522%252C%2522activeTabId%2522%253A%2522clyzvqs8q00023b6jlhlgvjol%2522%257D%252C%2522clyzvc20b00053b6jdle2ltrs%2522%253A%257B%2522tabs%2522%253A%255B%257B%2522id%2522%253A%2522clyzvc20b00043b6jvo1x8zjk%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522type%2522%253A%2522UNASSIGNED_PORT%2522%252C%2522port%2522%253A0%252C%2522path%2522%253A%2522%252F%2522%257D%255D%252C%2522id%2522%253A%2522clyzvc20b00053b6jdle2ltrs%2522%252C%2522activeTabId%2522%253A%2522clyzvc20b00043b6jvo1x8zjk%2522%257D%252C%2522clyzvc20b00033b6jllfl0twv%2522%253A%257B%2522tabs%2522%253A%255B%255D%252C%2522id%2522%253A%2522clyzvc20b00033b6jllfl0twv%2522%257D%257D%252C%2522showDevtools%2522%253Atrue%252C%2522showShells%2522%253Afalse%252C%2522showSidebar%2522%253Atrue%252C%2522sidebarPanelSize%2522%253A15%257D

Bug description

I tried to custom timesSlot component using components.timesSlotWrapper, every I click the event the app bit laggy and I noticed every I click the event it will be trigger rerender timesSlotWrapper

Expected Behavior

No response

Actual Behavior

No response

react-big-calendar version

0.33.3

React version

17.0.2

Platform/Target and Browser Versions

macos

Validations

Would you like to open a PR for this bug?

cutterbl commented 4 months ago

You are correct. This component has been around for a while, and currently has very little memoization preventing rerendering. Something we hope to address in the 'next' version.