仅使用 onChange
和值,同时集中在 <input/>
中,最好不使用 jQuery,有没有办法通过按“Enter”键触发方法?因为,只希望用户按“Enter”键以更新 name
字符串状态。
这是代码:
constructor(props) {
super(props);
this.state = {
name: '',
}
}
textChange(event) {
this.setState({
name: event.target.value,
})
}
//Would like to trigger this once 'Enter' key is pressed while focused inside `<input/>`
enterPressed() {
var name = this.state.name;
}
render() {
return (
<input
placeholder='Enter name'
onChange={this.textChange.bind(this)}
value={this.state.name}
/>
)
}
原文由 user3259472 发布,翻译遵循 CC BY-SA 4.0 许可协议
你可以做的是像这样使用 React 的关键事件:
现在,要检测回车键,将
enterPressed
函数更改为:所以它所做的是向输入元素添加一个事件侦听器。请参阅 React 的键盘事件。函数
enterPressed
然后在事件上触发,现在enterPressed
检测键码,如果是13,做一些事情。这是一个演示事件的 小提琴。
注意:
onKeyPress
和onKeyDown
事件在用户按下时立即触发。您可以使用onKeyUp
来解决这个问题。