React onClick - передать событие с параметром

Без параметра

function clickMe(e){
  //e is the event
}

<button onClick={this.clickMe}></button>

С параметром

function clickMe(parameter){
  //how to get the "e" ?
}
<button onClick={() => this.clickMe(someparameter)}></button>

Я хочу получить это event. Как я могу его получить?

Ответы

Ответ 1

Попробуй это

<button onClick={(e) => {
     this.clickMe(e, someParameter)
}}>Click Me!</button>

И в вашей функции

function clickMe(event, someParameter){
     //do with event
}

Ответ 2

Решение 1

function clickMe(parameter, event){
}

<button onClick={(event) => {this.clickMe(someparameter, event)}></button>

Решение 2 Использование функции связывания считается лучше, чем использование функции стрелки, в решении 1. Обратите внимание, что параметр события должен быть последним параметром в функции-обработчике.

function clickMe(parameter, event){
}

<button onClick={this.clickMe.bind(this, someParameter)}></button>

Ответ 3

//Try double arrow

function clickMe = parameter => e => {
  //e is the event
}

<button onClick={this.clickMe(someparameter)}></button>

Ответ 4

С ES6 вы можете сделать это более коротким способом:

const clickMe = (parameter) => (event) => {
    // Do something
}

Ans использовать это:

<button onClick={clickMe(someParameter)} />