Ejemplo de curry con ES6:
const clickHandler = param => event => {
console.log(param);
console.log(event.type);
};
Nuestro botón, que cambia el controlador:
<button onClick={(e) => clickHandler(1)(e)}>Click me!</button>
Si desea llamar a esta expresión de función sin un objeto de evento, la llamaría de esta manera:
clickHandler(1)();
Además, dado que react usa eventos sintéticos (una envoltura para eventos nativos), hay una agrupación de eventos , lo que significa que, si desea usar su event
objeto de forma asincrónica, entonces tendrá que usar event.persist()
:
const clickHandler = param => event => {
event.persist();
console.log(event.target);
setTimeout(() => console.log(event.target), 1000);
};
Aquí hay un ejemplo en vivo: https://codesandbox.io/s/compassionate-joliot-4eblc?fontsize=14&hidenavigation=1&theme=dark
onClick={(e) => { this.clickMe(e, someparameter) }}
data-*
atributos en HTML5. Consulte mi respuesta a continuación para obtener más detalles.