Каррінг на прикладі 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) }}