@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
.