在反应钩子中,如果用户选择相同的值,则不会触发onChange

问题描述 投票:0回答:1

这是我的代码

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。我添加了计数以演示该问题-选择不同的值时会增加计数,但是选择相同的值时不会计数。

是否有任何方法可以捕获用户选择的相同值?我尝试了onSelect,但是没有用

reactjs react-hooks react-dom
1个回答
0
投票

[onChange仅在更改值时触发。

尝试将onBlur添加到您的选择中

<select  onChange={onChange} onBlur={onChange} value={value}>
© www.soinside.com 2019 - 2024. All rights reserved.