J'ai quelques inquiétudes concernant l'utilisation de l'échappement des chaînes de caractères dans onClick. Au fur et à mesure que le nombre d'arguments augmentera, la maintenance deviendra fastidieuse.
L'approche suivante aura un seul saut - Sur le clic - prendre le contrôle à une méthode de gestionnaire et la méthode de gestionnaire, basée sur l'objet d'événement, peut déduire l'événement de clic et l'objet correspondant.
Il fournit également un moyen plus propre d'ajouter plus d'arguments et d'avoir plus de flexibilité.
<button type="button"
className="btn btn-default"
onClick="invoke"
name='gotoNode'
data-arg1='1234'>GotoNode</button>
Dans la couche JavaScript :
invoke = (event) => {
let nameOfFunction = this[event.target.name];
let arg1 = event.target.getAttribute('data-arg1');
// We can add more arguments as needed...
window[nameOfFunction](arg1)
// Hope the function is in the window.
// Else the respective object need to be used
})
}
L'avantage ici est que nous pouvons avoir autant d'arguments (dans l'exemple ci-dessus, data-arg1, data-arg2, etc.) que nécessaire.
1 votes
Dans ce cas, il est peut-être préférable de ne pas utiliser de gestionnaires d'événements en ligne.
1 votes
Votre problème est dû au fait que la variable n'est pas échappée correctement. Vérifiez ma réponse