как получить выбранное значение в раскрывающемся списке React redux-form

Я использую поля формы React Redux, и у меня есть выпадающие классы. Я могу выбрать любой класс из раскрывающегося списка. но проблема в том, что всякий раз, когда я выбираю какое-либо значение (класс) из раскрывающегося списка, я хочу запустить действие onChange. Когда я запускаю действие при изменении, раскрывающиеся значения не устанавливаются и не показывают выбранное значение. Я использую следующие строки кода

<Field name="class._id" component="select" className="form-control" onChange={this.onChange.bind(this)} >
              <option value="">Select class...</option>
              {this.props.classes.map(Class =>
              <option value={Class._id} key={Class._id} >{Class.name}</option>)}
</Field>

вот функция onChange

 onChange(){
     console.log(" Triggered")
  }

Если я не установил событие onChange, мой раскрывающийся список работает правильно и правильно отображает выбранное значение с правильным текстом. но я хочу вызывать функцию всякий раз, когда использую, выберите любое значение


person Muhammad Ateek    schedule 26.07.2016    source источник


Ответы (2)


Можете ли вы дать больше контекста для этого кода, возможно, поместив весь компонент (и любые модули, контейнеры или что-то еще) в JSBin или Fiddle? Это поможет авторам SO лучше знать, как вам помочь. Тем не менее, похоже, что ваш код правильный. Вы можете получить значение из выбранного типа следующим образом:

onChange(event) {
  console.log(event.target.value);
}

Это поможет?

person jasongonzales    schedule 26.07.2016

Может быть лучше использовать поля prop of redux и стандартные элементы html?

const {fields} = this.props
<select {...fields.class} onChange={this.handleChange}>
...

handleChange(event) {
    // do your stuff
    this.props.fields.class.onChange(event)
}
person Eugene Zinin    schedule 27.07.2016
comment
this.props.fields.class.onChange (событие) в этой строке отображается ошибка Uncaught TypeError: невозможно прочитать свойство onChange для undefined, когда я проверяю this.props.fields по console.log он показывает мне следующий массив полей, потому что я определил этот массив в компоненте для формы redux [title, amount, dueDate, category, class] - person Muhammad Ateek; 27.07.2016
comment
Покажите, пожалуйста, свой полный код. Он должен работать, если у вас определено поле 'class' и для компонента используется контейнер redux-form. - person Eugene Zinin; 27.07.2016