2017-08-14 10 views
2

これは私が入力タイプで呼び出したい関数です。デフォルトのイベント引数と反応の引数を渡す方法は?

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

、これは私が押されたときに、ENTER呼び出したい入力タイプである私が押したときに、私は

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

をonkeydownを使用しましたそれはコンソールにログオンしていません。私はキーコード13(入力)を検出することができるようにe(イベント)デフォルトのargを使用しましたが、もし失敗したらどうなるでしょうか? receiverUserIdが2番目のインデックスにあるので、関数が呼び出されたときに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> 
    ) 
} 
関連する問題