2016-12-19 2 views
1

нормально, чтобы изменить изменение в текстовое поле я сделал что-то вроде этого:ReactJs: Изменение состояния внутри тега <input>

<input type="text" onChange={this.handleFirst}/>

handleFirst: function(e){ 
     this.setState({ 
      first: e.target.value 
     }); 
    }, 

Но у меня есть несколько input поля и хотел бы чтобы избежать создания нескольких обработчиков для управления изменением состояния.

Есть ли способ сделать что-то подобное?

<input type="text" onChange={this.setState({last:e.target.value})}/>

Когда я пытаюсь это, я получаю сообщение об ошибке говорящее e is not defined (я понимаю). Есть ли способ получить доступ к значению input?

+0

Вы можете использовать ввод 'name' как key - https://jsfiddle.net/b59roefb/ –

+0

Im new, чтобы отреагировать ... на что ссылается e.target.name? –

+0

в том, что правильная ссылка, я ничего не вижу? –

ответ

2

Если вы хотите сделать это таким образом, что вам нужно обернуть его внутри функции:

<input type="text" onChange={e => this.setState({ last: e.target.value })} /> 

Событие OnChange ожидает функцию вызова, а не утверждение.

+0

спасибо! будет принимать, когда смогу (10 мин) –

+0

Не знаю, почему кто-то мог бы понизить это ... это сработало –

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