в ответных хуках onChange не срабатывает, если пользователь выбрал то же значение - PullRequest
0 голосов
/ 26 апреля 2020

вот мой код

function SelectBugDemo(){
  var [value,set_value]=React.useState('one')
  var [count,set_count]=React.useState(1)

  function render_option(x){
      return <option key={x} value={x}>{x}</option>
  }    
  function onChange(event){
      console.log('onChange')//some side effect here
      set_value(event.target.value)
      set_count(x=>x+1)
  }    
  return <>{count}<select {...{onChange,value}}> {['one','two'].map(render_option)}</select></>
}

проблема в том, что onChange не вызывается, если пользователь выбирает то же значение. Я добавил счетчик, чтобы продемонстрировать проблему - он увеличивается при выборе другого значения, но не при выборе того же значения.

Есть ли способ зафиксировать выбор пользователем того же значения? Я пытался выбрать, но это не сработало

1 Ответ

0 голосов
/ 26 апреля 2020

onChange срабатывает только при изменении значения.

Попробуйте добавить onBlur к вашему выбору .

<select  onChange={onChange} onBlur={onChange} value={value}>
...