Javascript 语法:React中的handleChange()函数用于不同的状态属性

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({

下面是一个handleChange函数,它接收将绑定到它的state元素的名称

有谁能解释一下为什么要这样写:

  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')
将产生相同的结果。噢,非常感谢,我想我误解了一些基本的东西。那么我如何称呼第一个(对我来说更重要的是)我如何称呼第二个?