2016-07-22 2 views
2

Я работаю над компонентом, который может иметь любое количество SelectFields и хочет использовать один обработчик onChange для всех из них. Могу ли я сказать, какой SelectField запускал onChange?Можете ли вы сказать, какой SelectField запускал onChange?

В этот момент я обратился к

onChange={this.onSelectChange.bind(this, key)}; 

С ключ принимая значение, которое идентифицирует SelectField. SelectField генерируется в теле Array.map.

Я хотел избежать связывания, но не нашел лучшего способа.

ответ

0

Если вы не хотите связывать функцию, вызовите ее явно. И я бы предпочел использовать идентификатор элемента для идентификации, кроме ключа:

id="coolSelect" onChange={(e)=>this.onSelectChange(e.target.id)} 
+0

Использование e.target.id было одной из моих первых попыток (извините, должно быть, упомянуло это в моем вопросе). Параметр события в обработчике, по-видимому, связан с MenuItem, а не с SelectField. Элемент MenuItem не связан с SelectField в DOM. –