plotly / plotly/react-plotly.js

Event Handlers Don't Update

Ouverte
#150 0 commentaires 6 réactions 0 personnes assignées Voir sur GitHub

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

I'm using 2.3.0 and noticed that the code doesn't account for an event handler prop changing. So, for instance, if I have a component with:

const MyComponent = ({ someCallback }) => (
   <Plot
     data={data}
     onRelayout={someCallback}
   />
);

The someCallback that is called is the first one. Here's a Codepen reproducing:

https://codepen.io/gonzofish/pen/OevOjx

To see it in action, just click autoscale on the chart and you'll see the message change to "Callback 1 Reporting In". If you change the callback by clicking "Change to 2" and then clicking autoscale again, the message doesn't change, despite the callback being changed.

I believe the issues stems from syncEventHandlers only account for two modes: (1) the handler isn't already set but has been provided as a prop and (2) the handler was set but the prop is not longer there. That starts at:

https://github.com/plotly/react-plotly.js/blob/master/src/factory.js#L212

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez dans src/factory.js autour de la ligne 212, où syncEventHandlers gère les props des événements du graphique, et utilisez la reproduction CodePen liée pour observer le changement du callback. Le travail est terminé lorsque la modification de la prop onRelayout fait que le prochain événement d’autoscale appelle le nouveau callback plutôt que l’original.

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é
2/5
Temps estimé
1-3 heures
Activité
À l'abandon
Clarté
Clairement spécifiée
Accessibilité débutants
50/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.