2015-08-21 3 views
0

У меня есть 2 функции:реагируют: объединение 2 функции

handleValue1(event) { 
    this.setState({number1: parseInt(event.target.value, 10)}); 
} 

handleValue2(event) { 
    this.setState({number2: parseInt(event.target.value, 10)}); 
} 

... 

onChange={this.handleValue1.bind(this)} 
onChange={this.handleValue2.bind(this)} 

Я хочу объединить эти 2 функции 1. я попытка:

handleValue(event, name) { 
    this.setState({name: parseInt(event.target.value, 10)}); 
} 

... 

input onChange={this.handleValue.bind(this, "number1")} 

ответ

0

Для того, чтобы задать имя динамически, вам нужно будет использовать кронштейн синтаксис:

var obj = {}; 
obj[name] = value; 

Так , Ваш метод стал бы:

handleValue(event, name) { 
    var newState = {}; 
    newState[name] = parseInt(event.target.value, 10); 
    this.setState(newState); 
} 

В противном случае, вы просите литерал объекта со свойством именем name.

+1

Вавилон пригодится здесь с расширенными литералами объектов. https://babeljs.io/docs/learn-es2015/#enhanced-object-literals – gor181

Смежные вопросы