2017-08-14 1 views
2

Dies ist die Funktion, die ich in einem Eingabetyp aufrufen wollen:Wie man Standard-Event-Argument und ein Argument in Reaktion zu übergeben?

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

und dies ist der Eingabetyp I aufrufen wollen, wenn ENTER gedrückt wird, benutzte ich

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

onKeyDown wenn ich drücken eingeben, es meldet sich nicht an der Konsole an. Ich habe e (event) default arg verwendet, so dass es den Schlüsselcode 13 (Enter) erkennen kann, aber ich schätze, wenn das fehlschlägt? Da die receiverUserId auf dem zweiten Index ist, muss ich e (event) arg nicht auf onKeyDown übergeben, wenn die Funktion aufgerufen wird?

+0

verwenden '.bind (chatFriendPopPup.id)' –

Antwort

1

Haben Sie versucht onKeyDown={(e) => this._handleOnEnterPress(e, chatFriendPopPup.id)}?

0

Versuchen Sie, eine Pfeilfunktion zu verwenden, um das Ereignis abzufangen und dieses Ereignisobjekt dann ebenfalls zu übergeben. beliebiges Argument Sie mögen die Handlermethode Ihrer Wahl.

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