В React есть несколько способов привязать методы или обработчики событий в callback() JSX:
- Использование стрелочной функции внутри
callback(). Это позволяет сохранить контекстthisи передать дополнительные аргументы в метод:
class MyComponent extends React.Component {
handleClick = (event, id) => {
console.log(`Clicked item with id ${id}`)
}
render() {
return <button onClick={(event) => this.handleClick(event, 123)}>Click me</button>
}
}В этом примере мы определяем метод handleClick, который принимает два аргумента: event и id. В методе render() мы передаем функцию-стрелку в качестве обработчика события onClick, которая вызывает метод handleClick с передачей объекта event и числового значения 123 2. Использование bind() для привязки метода к контексту this:
class MyComponent extends React.Component {
constructor(props) {
super(props)
this.handleClick = this.handleClick.bind(this)
}
handleClick(event, id) {
console.log(`Clicked item with id ${id}`)
}
render() {
return <button onClick={(event) => this.handleClick(event, 123)}>Click me</button>
}
}В этом примере мы используем конструктор класса для привязки метода handleClick к контексту this с помощью bind(). В методе render() мы передаем функцию-стрелку в качестве обработчика события onClick, которая вызывает метод handleClick с передачей объекта event и числового значения 123.
- Использование метода класса синтаксиса поля класса:
class MyComponent extends React.Component {
handleClick(event, id) {
console.log(`Clicked item with id ${id}`)
}
render() {
return <button onClick={this.handleClick.bind(this, event, 123)}>Click me</button>
}
}В этом примере мы определяем метод handleClick, который принимает два аргумента: event и id. В методе render() мы используем синтаксис поля класса, чтобы привязать метод handleClick к контексту this и передать аргументы event и числовое значение 123 в метод при клике на кнопку.
Это три способа привязать методы или обработчики событий в callback() JSX в React. Выберите тот, который наиболее подходит для вашего случая использования.