可以 onChange = {this.nameHandler} 调用 nameHandler = (event) =>{}
Can onChange = {this.nameHandler} invoke nameHandler = (event) =>{}
下面是有效的代码片段,
状态-
state = {
name : '',
age : ''
}
onChangeHandler-
nameHandler = (event) =>{
this.setState({name: event.target.value});
}
UI-
<input type = "text" onChange = {this.nameHandler} value = {this.state.name}/>
但为什么以下不起作用?
状态-
state = {
name : '',
age : ''
}
onChangeHandler-
nameHandler = (event) =>{
this.setState({name: event.target.value});
}
UI-
<input type = "text" onChange = {(event) =>this.nameHandler} value = {this.state.name}/>
连下面的都没有,
state = {
name : '',
age : ''
}
onChangeHandler-
nameHandler(event){
this.setState({name: event.target.value})
}
UI-
<input type = "text" onChange = {(event) =>this.nameHandler} value = {this.state.name}/>
我明白我的问题是缺乏箭头函数理论知识。
请分享详细原因
更改如下以调用函数 onChange: this.nameHandler
--> this.nameHandler()
<input type = "text" onChange = {(event) =>this.nameHandler(event)} value = {this.state.name}/>
考虑第二个例子
<input type = "text" onChange = {(event) =>this.nameHandler} value = {this.state.name}/>
这里你调用的不是原来的函数。这只是一个包装函数,return 是另一个函数。事件处理程序不受 return 值的影响。
<input type = "text" onChange = {(event) =>this.nameHandler(event)} value = {this.state.name}/>
您可以将 event.target.value 存储在这样的变量中
nameHandler = (event) =>{
let {value=''} = event.target;
this.setState({name: value});
}
<input type = "text" onChange = {this.nameHandler} value = {this.state.name}/>
下面是有效的代码片段,
状态-
state = {
name : '',
age : ''
}
onChangeHandler-
nameHandler = (event) =>{
this.setState({name: event.target.value});
}
UI-
<input type = "text" onChange = {this.nameHandler} value = {this.state.name}/>
但为什么以下不起作用?
状态-
state = {
name : '',
age : ''
}
onChangeHandler-
nameHandler = (event) =>{
this.setState({name: event.target.value});
}
UI-
<input type = "text" onChange = {(event) =>this.nameHandler} value = {this.state.name}/>
连下面的都没有,
state = {
name : '',
age : ''
}
onChangeHandler-
nameHandler(event){
this.setState({name: event.target.value})
}
UI-
<input type = "text" onChange = {(event) =>this.nameHandler} value = {this.state.name}/>
我明白我的问题是缺乏箭头函数理论知识。
请分享详细原因
更改如下以调用函数 onChange: this.nameHandler
--> this.nameHandler()
<input type = "text" onChange = {(event) =>this.nameHandler(event)} value = {this.state.name}/>
考虑第二个例子
<input type = "text" onChange = {(event) =>this.nameHandler} value = {this.state.name}/>
这里你调用的不是原来的函数。这只是一个包装函数,return 是另一个函数。事件处理程序不受 return 值的影响。
<input type = "text" onChange = {(event) =>this.nameHandler(event)} value = {this.state.name}/>
您可以将 event.target.value 存储在这样的变量中
nameHandler = (event) =>{
let {value=''} = event.target;
this.setState({name: value});
}
<input type = "text" onChange = {this.nameHandler} value = {this.state.name}/>