Currying com ES6 exemplo:
const clickHandler = param => event => {
console.log(param);
console.log(event.type);
};
Nosso botão, que alterna o manipulador:
<button onClick={(e) => clickHandler(1)(e)}>Click me!</button>
Se você quiser chamar esta expressão de função sem um objeto de evento, chame-a desta forma:
clickHandler(1)();
Além disso, como o react usa eventos sintéticos (um wrapper para eventos nativos), existe um pool de eventos , o que significa que, se você quiser usar seu event
objeto de forma assíncrona, terá que usar event.persist()
:
const clickHandler = param => event => {
event.persist();
console.log(event.target);
setTimeout(() => console.log(event.target), 1000);
};
Aqui está um exemplo ao vivo: https://codesandbox.io/s/compassionate-joliot-4eblc?fontsize=14&hidenavigation=1&theme=dark
onClick={(e) => { this.clickMe(e, someparameter) }}