Multiple react re-renderings when updating tree data
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 30/100
- Type d'issue
- Bug
- Clarté
- À clarifier
- Activité
- À l'abandon
- Stack technique
- react
- Domaine
- frontend, performance
Piste de recherche
Commencez par la reproduction CodeSandbox liée et son exemple dans une fenêtre séparée, puis vérifiez le nombre de rendus en développant l’arbre et en basculant un élément. C’est terminé lorsque la mise à jour reproduite provoque un rendu de rc-tree tout en conservant l’unique rendu de CustomTreeNode signalé comme correct.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Disclaimer: I use the term re-renderings. By this term here I mean react re-renderings and not browser re-renderings.
I have prepared a code example to reproduce the issue: codesandbox
Code example can be tested in separate window: separate window
Steps to reproduce:
- Expand all Elements
- Toggle Switch Button of single Element
- Internally: object
treeDatawill be completely recalculated and passed into rc-tree component - Expected results:
- I expect here, that rc-tree will be re-rendered 1 time (because
treeDatahas changed) - I expect here, that only single
CustomTreeNodewill be re-rendered, whichSwitchcomponent I have toggled on step 2.
- I expect here, that rc-tree will be re-rendered 1 time (because
- Actual results:
- rc-tree component re-rendered 3 times instead of 1 -> NOK
- only one
CustomTreeNodewill be re-rendered -> OK
Example video:
https://github.com/react-component/tree/assets/8103060/78917bcd-1e21-48ce-907a-4cc2082ff8d7
Duration of re-renderings from the video for rc-tree and all of its descendants:
- re-rendering no.1: 11.6 ms
- re-rendering no.2: 6.1 ms
- re-rendering no.3: 13.5 ms
Re-rendering screenshots
Re-rendering no.1:
Re-rendering no.2:
Re-rendering no.3:
My questions are:
- Is this a known behavior?
- Is it possible to fix it? (reduce number of re-renderings from 3 to 1. This should improve performance dramatically (11.6ms vs 31.2 ms - almost 3 times faster)
Thank you for your work and thank you in advance
- Langage dominant
- TypeScript
- Étoiles
- 1.3k
- Forks
- 490
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de react-component/tree
-
Tree crashes on mount with `Cannot read properties of null (reading 'scrollTo')` when a node title contains an autoFocus inputPeut-être pris @hippee-lee l’a pris il y a 70 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 55/100
react-component/tree#1068 · 1 commentaire ·
-
可以新增一个属性来控制节点上是否需要展示这个title吗?Ouverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
react-component/tree#983 ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
react-component/tree#937 ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
react-component/tree#935 ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
react-component/tree#929 ·
Toutes les issues de react-component/tree
Issues similaires
-
`cf complete zsh >> .zshrc` fails on vanilla zshPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
cloudflare/cf#340 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
-
Rename Madson cameraOuverte
Difficulté 2/5 Moins d'une heure Accessibilité débutants 75/100
StoDevX/AAO-React-Native#8785 ·
Les mainteneurs répondent en général sous 1 jour
-
Broken links in the docsOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 75/100
-
bnv-manager-v2: accept_invite creates the Mailcow domain admin before the commitPeut-être pris @myOmikron l’a pris aujourd’hui. Ouvertebug ready-for-agent
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100