2017-05-08 9 views
0

Ich bin wirklich neu zu ReactJS und ich bin nicht wirklich weit mit meinen Studien auf React gegangen, ich versuche, ein Suchfeld einzurichten, die die Abfrage zurückgibt, aber für jetzt ich bin ein nicht erfasster Typeerror erhalten: Kann nicht Eigentum ‚keyCode‘ undefinierter aufFehler beim Erstellen onKeyPress "Enter" ReactJS

if(keyCode==='13') 

lesen Was ich versuche zu tun, jedes Mal wenn ich ‚Enter‘ auf meine Textbox treffen würde ich die console.log bekommen

Hier ist, was ich habe

var searchQuery = (e) => { 
    var textInput = document.getElementById('searchQuery'); 
     if(e.keyCode === '13'){ 
      console.log('Enter pressed'); 
     }; 
    }; 

const SearchBar =() => { 
    debugger; 

    return (
    <div className="search-bar"> 
     <input type="text" id="searchQuery" placeholder="Enter Query" onKeyPress={searchQuery(event)}/> 
    </div> 
    ); 

}; 
versucht zu tun

Jede Art von Hilfe würde sehr geschätzt werden.

Antwort

0

Sie benötigen

var keyCode = e.which || e.keyCode; 
     if(keyCode === 13){ 
      console.log('Enter pressed'); 
     }; 
    }; 

und

onKeyPress={searchQuery} 

Hier verwenden Code-Schnipsel des Codes ausgeführt wird.

var searchQuery = (e) => { 
 
    var textInput = document.getElementById('searchQuery'); 
 
    var keyCode = e.which || e.keyCode; 
 
     if(keyCode === 13){ 
 
      console.log('Enter pressed'); 
 
     }; 
 
    }; 
 

 
const SearchBar =() => { 
 
    debugger; 
 

 
    return (
 
    <div className="search-bar"> 
 
     <input type="text" id="searchQuery" placeholder="Enter Query" onKeyPress={searchQuery}/> 
 
    </div> 
 
    ); 
 

 
}; 
 

 
ReactDOM.render(
 
    <SearchBar/>, 
 
    document.getElementById('root') 
 
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> 
 
<div id="root"> 
 
</div>

+0

danke, können Sie erklären, warum meine Arbeit nicht funktioniert? Und warum deine? Es wäre sehr hilfreich. –

+0

Der Tastendruck gibt den Zeichenwert zurück und der Schlüsselcode ist in diesem Fall 0. Die 'which' -Eigenschaft gibt den Unicode-Zeichencode des Schlüssels zurück, der das onkeypress-Ereignis ausgelöst hat. Sie können mehr unter w3 Dokumentation https://www.w3.org/TR/DOM-Level-3-Events/#event-type-keypress und der Mozilla-Dokumentation für 'which' https://developer.mozilla.org lesen/de-DE/docs/Web/API/KeyboardEvent/welche – Santosh

0

ich weiß nicht sehr gut reagieren, aber es sollte wie

onKeyPress={searchQuery} 

Type ‚Funktionsname‘, ohne Argumente sein.

+0

Dank, dass richtig war, aber wenn es geht an meine if-Anweisung, wenn ich Debugger verwendet, ist es nicht den Schlüsselcode von ‚Enter‘ erkennen, Pflege etwas Licht zu vergießen? Danke, –