Карринг с примером ES6:
const clickHandler = param => event => {
console.log(param);
console.log(event.type);
};
Наша кнопка, которая переключает обработчик:
<button onClick={(e) => clickHandler(1)(e)}>Click me!</button>
Если вы хотите вызвать это выражение функции без объекта события, вы бы назвали его так:
clickHandler(1)();
Кроме того, поскольку в реакции используются синтетические события (оболочка для собственных событий), существует функция объединения событий , что означает, что если вы хотите использовать свой event
объект асинхронно, вам придется использовать event.persist()
:
const clickHandler = param => event => {
event.persist();
console.log(event.target);
setTimeout(() => console.log(event.target), 1000);
};
Вот живой пример: https://codesandbox.io/s/compassionate-joliot-4eblc?fontsize=14&hidenavigation=1&theme=dark
onClick={(e) => { this.clickMe(e, someparameter) }}