onKeyPress
ReactJS 에서 이벤트를 어떻게 작동시킬 수 있습니까? enter (keyCode=13)
누를 때 경고해야합니다 .
var Test = React.createClass({
add: function(event){
if(event.keyCode == 13){
alert('Adding....');
}
},
render: function(){
return(
<div>
<input type="text" id="one" onKeyPress={this.add} />
</div>
);
}
});
React.render(<Test />, document.body);
답변
React 0.14.7로 작업하고 있으며 사용 onKeyPress
하고 event.key
잘 작동합니다.
handleKeyPress = (event) => {
if(event.key === 'Enter'){
console.log('enter press here! ')
}
}
render: function(){
return(
<div>
<input type="text" id="one" onKeyPress={this.handleKeyPress} />
</div>
);
}
답변
render: function(){
return(
<div>
<input type="text" id="one" onKeyDown={this.add} />
</div>
);
}
onKeyDown
keyCode
이벤트를 감지 합니다.
답변
나를 위해 onKeyPress
은 e.keyCode
항상 0
있지만, e.charCode
정확한 값을 가지고있다. 경우 사용 onKeyDown
에 올바른 코드를 e.charCode
.
var Title = React.createClass({
handleTest: function(e) {
if (e.charCode == 13) {
alert('Enter... (KeyPress, use charCode)');
}
if (e.keyCode == 13) {
alert('Enter... (KeyDown, use keyCode)');
}
},
render: function() {
return(
<div>
<textarea onKeyPress={this.handleTest} />
</div>
);
}
});
답변
Keypress 이벤트는 더 이상 사용되지 않으므로 대신 Keydown 이벤트를 사용해야합니다.
https://developer.mozilla.org/en-US/docs/Web/API/Document/keypress_event
handleKeyDown(event) {
if(event.keyCode === 13) {
console.log('Enter key pressed')
}
}
render() {
return <input type="text" onKeyDown={this.handleKeyDown} />
}
답변
리 액트는 당신이 생각할만한 종류의 사건을 전달하지 않습니다. 오히려, 그것은 합성 사건을 통과하고 있습니다 .
간단한 테스트에서는 event.keyCode == 0
항상 사실입니다. 당신이 원하는 것은event.charCode
답변
var Test = React.createClass({
add: function(event){
if(event.key === 'Enter'){
alert('Adding....');
}
},
render: function(){
return(
<div>
<input type="text" id="one" onKeyPress={(event) => this.add(event)}/>
</div>
);
}
});
답변
동적 입력을 동적 입력 내부의 함수에 전달하려면 다음을 수행하십시오.
<Input
onKeyPress={(event) => {
if (event.key === "Enter") {
this.doSearch(data.searchParam)
}
}}
placeholder={data.placeholderText} />
/>
이것이 누군가를 돕기를 바랍니다. 🙂