javascript - onChange = {this.nameHandler} 可以调用 nameHandler = (event) =>{}
问题描述
以下是有效的代码片段,
状态-
state = {
name : '',
age : ''
}
onChangeHandler-
nameHandler = (event) =>{
this.setState({name: event.target.value});
}
用户界面-
<input type = "text" onChange = {this.nameHandler} value = {this.state.name}/>
但是为什么以下不起作用?
状态-
state = {
name : '',
age : ''
}
onChangeHandler-
nameHandler = (event) =>{
this.setState({name: event.target.value});
}
用户界面-
<input type = "text" onChange = {(event) =>this.nameHandler} value = {this.state.name}/>
甚至以下,
state = {
name : '',
age : ''
}
onChangeHandler-
nameHandler(event){
this.setState({name: event.target.value})
}
用户界面-
<input type = "text" onChange = {(event) =>this.nameHandler} value = {this.state.name}/>
我理解我提出问题的原因是缺乏箭头函数理论知识。
请分享详细原因
解决方案
考虑第二个例子
<input type = "text" onChange = {(event) =>this.nameHandler} value = {this.state.name}/>
在这里,您没有调用原始函数。这只是一个包装函数,它返回另一个函数。事件处理程序不受返回值的影响。
<input type = "text" onChange = {(event) =>this.nameHandler(event)} value = {this.state.name}/>
推荐阅读
- woocommerce - 按特定产品 SKU 隐藏 woocommerce 产品
- javascript - 检测 Angular 中的资源加载
- github - Jenkins:需要安装哪个插件才能获得构建触发器选项“GitHub hook trigger for GITScm polling”
- html - 打字稿/角度中的对象可能为“空”
- php - Laravel Octane 缓存不持久
- salesforce - 在 Salesforce 中的 Apex 中捕获 LWC 中的异常
- python - Flask 在现有路由中显示 404 错误
- ruby-on-rails - 如何在rails中使用相同的语言环境进行重定向
- powershell-2.0 - Powershell 格式不一致
- hibernate - Mockito 从 3.4 升级到 3.5 导致 NoClassDefFoundError