代码之家  ›  专栏  ›  技术社区  ›  R. Kohlisch

语法:handlechange()函数对不同的状态属性有反应

  •  3
  • R. Kohlisch  · 技术社区  · 8 年前

    这里有一个handlechange函数,它接收将要绑定到它的状态元素的名称。

    有人能给我解释一下为什么要这样写吗:

      handleInputChange(property) {
        return e => {
          this.setState({
            [property]: e.target.value
          });
        };
      }
    

    不能这样写:

      handleInputChange(property, e) {
          this.setState({
            [property]: e.target.value
          }); 
      }
    

    我似乎不明白如何把第一个概念化 事实上 做。

    2 回复  |  直到 8 年前
        1
  •  2
  •   Tholle    8 年前

    第一个函数返回一个函数,因此调用它的结果将用作 onChange 处理程序:

    <input onChange={this.handleInputChange('someProperty')} value={someProperty} />

    第二个是一个常规类方法,它接受一个属性字符串和一个事件,您可以从 一次改变 处理程序:

    <input onChange={(e) => this.handleInputChange('someProperty', e)} value={someProperty} />
    
        2
  •  0
  •   Leo Chow    8 年前

    我认为更好的方法是设置输入' name 作为状态键。应该很容易处理更改。codesandbox上的代码示例: handleReactInputsChange