fr_end
@fr_end
Frontend разработчик

Как байндить event в React?

Хочу добавить к обработчику события еще и параметр id, но оставить ссылку на event, чтобы вызывать stopPropagation().
Для этого использую bind, где передаю event и id. Но вот проблема, передается совершенно другой event, то есть вместо mouse click'a получаю input. В чем может быть проблема?
<li key={i}>
  <a href="##" onClick={this._onClick.bind(this, event, el.id)}>Какой-то текст</a>
</li>
  • Вопрос задан
  • 376 просмотров
Решения вопроса 1
@WapGeaR
Программист
А зачем таким методом? Не проще ли сделать так:
constructor(props){
this.handleClick = this.handleClick.bind(this);
}

handleClick() {
return (event, index, value) => { //Твой код}
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@vsuhachev
<li key={i}>
  <a href="##" onClick={event => this._onClick(event, el.id) }>Какой-то текст</a>
</li>


А вообще лучше пользоваться refs
Ответ написан
Комментировать
SPAHI4
@SPAHI4
реактовцы - это не девы, а прокидыватели пропсов
...

_handleClick = id => {
  return e => {
    e.stopPropagation();
    /* some actions */
  }
}
...
<a onClick={ this._handleClick(el.id) }></a>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы