2016-11-15 3 views
1

Я хотел бы вызвать некоторый обратный вызов в компоненте React всякий раз, когда значение ввода изменилось.В React, как мне передать входное значение функции обратного вызова?

упрощенный пример должен объяснить:

в jsx файле:

<input onKeyDown={this.props.changeCallback(VALUE_OF_INPUT)} ></input> 

что должно VALUE_OF_INPUT быть?

Спасибо!

ответ

3

Это не так важно для конкретного случая. Используйте event, который передается в функцию обратного вызова в качестве первого аргумента:

onKeyDown={event => this.props.changeCallback(event.target.value)} 

Этот подход (с использованием fat arrow function) также обрабатывает связывание this, за счет создания новой анонимной функции один раз в визуализации. Обратите внимание, что вызов bind по существу делает то же самое, так что это мой предпочтительный вариант из двух.

Это важно делать различие между назначением функции с атрибутом onKeyDown (как это сделано здесь) и вызов функции (то, что вы делали).

1
<input value={this.state.value} onKeyDown={this.props.changeCallback.bind(this, this.state.value)} ></input> 

Сделал бы эту работу.