Javascript 语法:React中的handleChange()函数用于不同的状态属性
下面是一个handleChange函数,它接收将绑定到它的state元素的名称 有谁能解释一下为什么要这样写:Javascript 语法:React中的handleChange()函数用于不同的状态属性,javascript,reactjs,syntax,Javascript,Reactjs,Syntax,下面是一个handleChange函数,它接收将绑定到它的state元素的名称 有谁能解释一下为什么要这样写: handleInputChange(property) { return e => { this.setState({ [property]: e.target.value }); }; } handleInputChange(property, e) { this.setState({
handleInputChange(property) {
return e => {
this.setState({
[property]: e.target.value
});
};
}
handleInputChange(property, e) {
this.setState({
[property]: e.target.value
});
}
不能这样写:
handleInputChange(property) {
return e => {
this.setState({
[property]: e.target.value
});
};
}
handleInputChange(property, e) {
this.setState({
[property]: e.target.value
});
}
我似乎不明白如何概念化第一个函数的实际功能。第一个函数返回一个函数,因此调用它的结果将用作
onChange
处理程序:
第二个是一个常规类方法,它接受一个属性字符串和一个事件,可以从onChange
处理程序传递:
<input onChange={(e) => this.handleInputChange('someProperty', e)} value={someProperty} />
this.handleInputChange('someProperty',e)}value={someProperty}/>
我认为更好的方法是将输入“name
设置为状态键。处理更改应该很容易。codesandbox上的代码示例:第一个示例返回一个函数,因此它很可能会这样使用:
。第二个也很好,但必须以不同的方式使用:this.handleInputChange('someProperty',e)}value={someProperty}/>
它们中的哪一个将真正起作用取决于您调用函数的方式,因此您应该在问题中包括这一点。例如,this.handleInputChange('foo')
和this.handleInputChange.bind(this,'foo')
将产生相同的结果。噢,非常感谢,我想我误解了一些基本的东西。那么我如何称呼第一个(对我来说更重要的是)我如何称呼第二个?