首页 > 解决方案 > 语法:针对不同状态属性的 React 中的 handleChange() 函数

问题描述

这是一个 handleChange 函数,它接收将与之绑定的状态元素的名称。

有人可以向我解释为什么它必须这样写:

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

不能这样写:

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

我似乎不明白如何概念化第一个实际做了什么。

标签: javascriptreactjssyntax

解决方案


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

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

第二个是一个常规的类方法,它接受一个属性字符串和一个事件,您可以从onChange处理程序中传递它们:

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

推荐阅读