@gage
В React компонентах, обработчики событий, такие как onClick, принимают обычно один аргумент - объект события. Однако, можно передать дополнительные параметры в обработчик событий при вызове его функции через использование функций высшего порядка или стрелочных функций.
Вот несколько примеров:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function handleClick(extraParam) { // Обработчик события console.log(extraParam); } function MyComponent() { const extraParam = "someValue"; return ( <button onClick={() => handleClick(extraParam)}> Click me </button> ); } |
В этом примере мы определяем обработчик события handleClick с одним параметром extraParam. Затем мы передаем extraParam в обработчик события, используя функцию высшего порядка. В данном случае мы используем стрелочную функцию для вызова handleClick с параметром extraParam.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
class MyComponent extends React.Component { constructor(props) { super(props); this.extraParam = "someValue"; this.handleClick = this.handleClick.bind(this); } handleClick(event) { console.log(this.extraParam); } render() { return ( <button onClick={this.handleClick}> Click me </button> ); } } |
В этом примере мы определяем обработчик события handleClick в методе класса MyComponent. Мы передаем this.handleClick в onClick, а затем используем bind() для связывания this с компонентом и передачи параметра extraParam в обработчик события.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
function handleClick(extraParam) { return function(event) { console.log(extraParam); } } function MyComponent() { const extraParam = "someValue"; return ( <button onClick={handleClick(extraParam)}> Click me </button> ); } |
В этом примере мы определяем обработчик события handleClick как функцию, которая возвращает другую функцию, которая будет вызываться при клике на кнопке. Мы передаем extraParam в handleClick, который используется во внутренней функции, которую мы передаем в onClick.