Exemple de curry avec ES6:
const clickHandler = param => event => {
console.log(param);
console.log(event.type);
};
Notre bouton, qui bascule le gestionnaire:
<button onClick={(e) => clickHandler(1)(e)}>Click me!</button>
Si vous souhaitez appeler cette expression de fonction sans objet d'événement, vous l'appelez ainsi:
clickHandler(1)();
De plus, étant donné que react utilise des événements synthétiques (un wrapper pour les événements natifs), il existe un élément de regroupement d'événements , ce qui signifie que si vous souhaitez utiliser votre event
objet de manière asynchrone, vous devez utiliser event.persist()
:
const clickHandler = param => event => {
event.persist();
console.log(event.target);
setTimeout(() => console.log(event.target), 1000);
};
Voici un exemple en direct: https://codesandbox.io/s/compassionate-joliot-4eblc?fontsize=14&hidenavigation=1&theme=dark
onClick={(e) => { this.clickMe(e, someparameter) }}