2017-08-14 79 views
2

这是我想在输入类型来调用函数:如何传递默认事件参数和参数?

_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(事件)默认参数,所以它可以检测键码13(输入),但我猜如果失败?因为receiverUserId在第二个索引上,所以当函数被调用时,我不必在onKeyDown上传递e(event)arg吗?

+0

使用'.bind(chatFriendPopPup.id)' –

回答

1

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

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> 
    ) 
}