Javascript 能否onChange={this.nameHandler}调用nameHandler=(事件)=>;{}

Javascript 能否onChange={this.nameHandler}调用nameHandler=(事件)=>;{},javascript,reactjs,ecmascript-6,arrow-functions,eventhandler,Javascript,Reactjs,Ecmascript 6,Arrow Functions,Eventhandler,下面是有效的代码片段 声明- state = { name : '', age : '' } state = { name : '', age : '' } onChangeHandler- nameHandler = (event) =>{ this.setState({name: event.target.value}); } nameHandler = (event) =&g

下面是有效的代码片段

声明-

state = {
        name : '',
        age : ''
    }
state = {
        name : '',
        age : ''
    }
onChangeHandler-

nameHandler = (event) =>{
        this.setState({name: event.target.value});
    }
nameHandler = (event) =>{
        this.setState({name: event.target.value});
    }
用户界面-

onChangeHandler-

nameHandler = (event) =>{
        this.setState({name: event.target.value});
    }
nameHandler = (event) =>{
        this.setState({name: event.target.value});
    }
用户界面-

用户界面-

this.nameHandler}value={this.state.name}/>
我理解我的问题的原因是缺乏箭头函数理论的知识


请共享详细的原因

更改以下内容以在更改时调用函数:
this.nameHandler
-->
this.nameHandler()

this.nameHandler(event)}value={this.state.name}/>

考虑第二个例子

<input type = "text" onChange = {(event) =>this.nameHandler} value = {this.state.name}/> 
this.nameHandler}value={this.state.name}/>
这里您不是在调用原始函数。这里只是一个返回另一个函数的包装函数。事件处理程序不受返回值的影响

<input type = "text" onChange = {(event) =>this.nameHandler(event)} value = {this.state.name}/> 
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}/>  

nameHandler=(事件)=>{
让{value=''}=event.target;
this.setState({name:value});
}
<input type = "text" onChange = {(event) =>this.nameHandler} value = {this.state.name}/> 
<input type = "text" onChange = {(event) =>this.nameHandler(event)} value = {this.state.name}/> 
nameHandler = (event) =>{
    let {value=''} = event.target;
        this.setState({name: value});
}

  <input type = "text" onChange = {this.nameHandler} value = {this.state.name}/>