Почему мой URL [объект% 20Object] находится в вызове API?

0

Мой снимок внизу. У меня кончились идеи.

class Settings extends Component {

  render(){
    return(
    <div className='App container'>
       <h3>Select Currency</h3>
      <select className="custom-select"
        onChange={(prop, attr) => this.props.fetchData(id,value)}>
        <option value='selected'></option>
        <option value='EUR'>EUR</option
      </select>
      <Link to='/' className="btn" type="submit">Submit</Link>
    </div>
  )
 }
}

}

Пожалуйста, помогите, что не так с моим кодом? Как я могу решить эту странную ошибку?

  • 0
    использовать JSON.stringify (значение)
  • 0
    Кажется, что id это объект, а не string или int ...
Показать ещё 9 комментариев
Теги:
redux

2 ответа

0
Лучший ответ

Ваш обработчик onChange неверен, потому что ему не передается id и value, а только объект события. Из объекта event.target вы должны получить эти значения, вот пример и короткий рефакторинг вашего компонента:

class Settings extends Component {

  handleChange(e) {
   this.props.fetchCurrency(e.target.id, e.target.value)
  }


  render(){
    return(
     <div className='App container'>
      <h3>Select Currency</h3>
      <select className="custom-select" id="inputGroup"
       onChange={this.handleChange.bind(this)}>
       <option value='selected'></option>
       <option value='EUR'>EUR</option>
       <option value='AUD'>AUD</option>
       <option value='GBP'>GBP</option>
       <option value='CAD'>CAD</option>
       <option value='JPY'>JPY</option>
      </select>
     <Link to='/' className="btn btn-light btn-block" type="submit">Submit</Link>
  </div>
  )
 }
}
  • 0
    Идеальный партнер! Работает как шарм. Только id="inputGroup" является устаревшим, так как он будет принимать id оттуда. :)
  • 0
    Да, вы можете установить другие атрибуты в select или получить их из опций, без проблем, попробуйте утешить все, и вы увидите все опции.
-1

onChange выполняет по умолчанию обратный вызов с событием (если вы регистрируете идентификатор, вы увидите объект Proxy). Итак, что вам нужно сделать:

{(event) => this.props.fetchCurrency(event.target.value, event.target.options[event.target.options.selectedIndex].id)}

event.target.options[event.target.options.selectedIndex].id необходимо, если вы хотите, чтобы выбранный идентификатор параметра, который пока отсутствует в вашем коде.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню