如何在react中传递默认事件参数和参数?

时间:2017-08-14 15:21:14

标签: javascript reactjs

这是我想在输入类型中调用的函数:

_handleOnEnterPress = (e, receiverUserId) => {
     if (e.keyCode === 13) { // guess keycode 13 is enter?
       console.log("pressed enter. user id = ",receiverUserId)
     }
  };

这是我按下ENTER时要调用的输入类型,我在onKeydown上使用

<input className="popup-input" 
  onKeyDown={this._handleOnEnterPress(chatFriendPopPup.id)} 
  onChange={this._handleMessageTextChange} 
  type='text'
/>

当我按回车键时,它没有登录控制台。我使用e(事件)默认arg所以它可以检测到键码13(输入),但我想如果失败了?既然receiverUserId在第二个索引上,那么在调用函数时,我不必在onKeyDown上传递e(事件)arg吗?

2 个答案:

答案 0 :(得分:1)

您是否尝试过onKeyDown={(e) => this._handleOnEnterPress(e, chatFriendPopPup.id)}

答案 1 :(得分:0)

尝试使用箭头函数捕获事件,然后将该事件对象以及您喜欢的任何参数传递给您选择的处理程序方法。

handler(e, someInput) {
    // do something in here

    if (someInput === 'foo') console.log('bar');
}

render() {
    const someArg = 'foo';
    return (
        <button onClick={e => this.handler(e, someArg)}>Do something</button>
    )
}