假设我们有一个输入字段:
<input type="text" ref="inputBrand" onChange={this.updateState} />
调用updateState函数时,是否有一种方法可以在不引用ref的情况下知道从哪个元素调用的?

updateState: function() {
  console.log(inputValue???);
},

我之所以不引用引用就这样做是因为我将有多个输入字段。

如果上述方法不可行-是否可以在函数调用中直接传递ref

像这样:
<input type="text" ref="inputBrand" onChange={this.updateState(--this ref--)} />

最佳答案

您可以从SyntheticEvent参数获取输入名称和输入值,该参数将传递给React中的所有事件处理程序。

updateState: function(e){
      this.setState({[e.target.name] : e.target.value}, () => console.log(this.state))
},
render: function() {
    return <div>
        <input type="text"  name="a" onChange={this.updateState} />
        <input type="text" name="b" onChange={this.updateState} />
     </div>;
}

jsfiddle

09-25 18:38