javascript - REACTjs 在输入时捕获输入框数据
问题描述
单击回车键后,我试图在文本框中捕获值。我通常使用 onChange 但这不是我想要的。在下面的代码中,我尝试使用 onKeydown 但是当我尝试在文本框中输入时,什么也没有发生。这是我的代码:
class App extends React.Component{
constructor(){
super()
this.state = {
name:'',
show:false
}
this.handleKeyDown = this.handleKeyDown.bind(this)
}
handleKeyDown(e) {
if (e.key === 'Enter') {
this.setState({
name:e.target.value
})
}
}
render(){
return(
<div>
<span>What is your name? </span>
<input type="text" name="fullName" value={this.state.name} onKeyDown={this.handleKeyDown} />
{this.state.show && <div>Hello {this.state.name}</div>}
</div>
)
}
}
ReactDOM.render(
<App />,
document.getElementById("root")
)
这是我的代码笔 任何帮助将不胜感激。谢谢!
解决方案
您必须在输入更改时更新状态,然后在按下回车键时对值执行某些操作。
class App extends React.Component{
constructor(){
super()
this.state = {
name: '',
show:false
}
this.handleKeyDown = this.handleKeyDown.bind(this)
}
handleKeyDown(e) {
if (e.key === 'Enter') {
alert(this.state.name)
}
}
render(){
return(
<div>
<span>What is your name? </span>
<input type="text" name="fullName" onChange={e=>this.setState({ name: e.target.value })} value={this.state.name} onKeyDown={this.handleKeyDown} />
{this.state.show && <div>Hello {this.state.name}</div>}
</div>
)
}
}
ReactDOM.render(
<App />,
document.getElementById("root")
)
推荐阅读
- flutter - 如何实现依赖于另一个提供者的提供者?
- system.reactive - 吐出 IObservable
单独的 IObservable 中的异常 并正常继续 - python - 使用 OpenCV Python 在 imshow 窗口上绘制乘法图像
- html - 图标的名称、图标的类型或图标的标签?
- css - 如何将 iPadOS 指针交互添加到 Web 内容?
- bash - 用 sh 替换 shell 参数
- javascript - JS 中的 firebase 集成的“db is undefined”问题
- java - 编写customConsumerFactory和customKafkaListenerContainerFactory时未自动加载spring kafka属性
- javascript - 将函数导入 jest.mock 以避免样板代码
- html - 使用 URL 重写删除子文件夹