plotly / plotly/react-plotly.js
Tooltip misaligned when using global data object, layout prop and onHover that manipulates state
Personne n'a encore pris cette issue.
- Langage dominant
- JavaScript
- Étoiles
- 1.1k
- Forks
- 138
- Merge moyen
- 3 j 2 h
- PR mergées (30 j)
- 4
Description
The tooltip hover functionality gets messed up when the following conditions are met:
- You got your own data object which isn't reinitialized every time the plot is rendered.
- You have declared a custom onHover function
- You update state to get the component to re-render
- You have defined the layout property in the Plot component
This sandbox reproduces the error
https://codesandbox.io/s/qx5qr2m5x4
Hover one of the points in the plot. The tooltip will be shown briefly and afterwards the rest of the points will be misaligned towards the axes.
Versions used:
plotly.js 1.37.1
react-plotly.js 2.2.0
Tested on:
chrome
edge
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
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.
Piste de recherche
Commencez par exécuter le CodeSandbox lié avec les versions indiquées de plotly.js et react-plotly.js, puis reproduisez le désalignement en survolant un point pendant que le onHover personnalisé met à jour le state. Suivez la gestion du global data object, du layout prop et du rerender par le composant Plot. C’est terminé lorsque le tooltip s’affiche correctement et que les autres points restent alignés après la mise à jour du state.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, react
- Domaine
- data-visualization, frontend
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100