Closed ozolsg closed 8 months ago
Hi!
Yes, the render method for items are retriggered on tree state changes, since every item is provided with information about the tree state in their props, so tree items wouldn't be able to display data they otherwise can.
You can memoize the item render methods directly with only those props that you use, this will ensure that items are not rerendered unless they need to be: https://codesandbox.io/s/react-complex-tree-playground-memo-demo-37mngx
Describe the bug When we use
renderItem
orrenderItemTitle
, props get called expanded tree list item amount of times. Even when functions are memoized. For smaller amount of list items the performance hit is not noticeable, when clicking or using up and down keyboard keys. However if we have a list of 1000 expanded items, performance hit is noticeable.To Reproduce Steps to reproduce the behavior:
renderItemTitle
is being rerenderedrenderItemTitle
is being rerenderedExpected behavior
renderItem
andrenderItemTitle
elements not affected by keyboard presses or mouse clicks should not rerender.Desktop (please complete the following information):